2016-01-24 81 views
1

我在我的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

回答

1

我修改了代碼如下:

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

1

要添加尾隨斜槓到您的擴展名減少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