的.htaccess重写部队尾随斜线删除后的.html

问题描述:

我在我的htaccess文件下面的代码:的.htaccess重写部队尾随斜线删除后的.html

Options -Indexes 
RewriteEngine On 

# Redirect external .php requests to extension less url 
RewriteCond %{THE_REQUEST} ^(.+)\.html([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.html$ http://%{HTTP_HOST}/foo/$1 [R=301,L] 

# Resolve .html file for extension less html urls 
RewriteRule ^([^/.]+)$ $1.html [L] 

这正常工作,当我去www.mydomain.com/foo/index html的内部消除。我想要强制拖尾索引结尾的斜杠,但我不知道如何

有谁知道如何修改我的代码,使尾部斜杠工作?

谢谢!

+0

的可能的复制[的.htaccess重写部队尾随斜线末(HTTP ://stackoverflow.com/questions/7780859/htaccess-rewrite-to-force-trailing-slash-at-the-end) – mani

我修改了代码如下:

Options -Indexes 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^([^/]+)/$ $1.html 

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.]+\.html(\?[^\ ]*)?\ HTTP/ 
RewriteRule ^(([^/]+/)*[^.]+)\.html$ http://%{HTTP_HOST}/fr/$1 [R=301,L] 


RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ http://%{HTTP_HOST}/fr/$1/ [R=301,L] 

它运作良好

+0

现在我会隐藏在URL的fr文件夹。我想你的帮助,因为我没有找到任何关于这个问题的结论。谢谢,谢谢 ! – Laurent

要添加尾随斜杠到您的扩展名减少html网址,您需要修改两个规则。

在第一条规则中,我们在目标网址的末尾添加尾部,以便向所有.html请求添加斜杠。

而在第二条规则中,我们在正则表达式模式的末尾添加一个尾部斜线以接受带有斜线的请求。

Options -Indexes 
RewriteEngine On 

# Redirect external .php requests to extension less url 
RewriteCond %{THE_REQUEST} ^(.+)\.html([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.html$ http://%{HTTP_HOST}/foo/$1/ [R=301,L] 

# Resolve .html file for extension less html urls 
RewriteRule ^([^/.]+)/?$ $1.html [L] 

清除浏览器的测试此之前! (希望,这有助于!)

+0

谢谢你的帮助!我会尝试你的解决方案 – Laurent