2010-06-21 67 views
0

我使用mod_rewrite/.htaccess獲得漂亮的URL。mod_rewrite:刪除尾部斜線(只有一個!)

我使用這個條件/規則來消除尾隨斜槓(或者說:通過301重定向重寫到非尾隨斜槓URL;我這樣做是爲了避免重複的內容,因爲我喜歡URL沒有後斜線更好):

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{HTTP_HOST} !^\.localhost$ [NC] 
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

到目前爲止工作得很好。唯一缺點:
它也轉發「多行尾斜槓」-URL非尾隨斜槓-URL

例子:
http://example.tld/foo/bar//////轉發到http://example.tld/foo/bar
而我只想http://example.tld/foo/bar/轉發到http://example.tld/foo/bar

那麼,如果實際上只有一個只有一個尾部斜線,是否可以只消除尾部的斜線?

對不起,如果這是一個有點煩人或奇怪的問題!

謝謝。

+0

爲什麼再次問同樣的問題? http://stackoverflow.com/questions/3068091/mod-rewrite-remove-trailing-slash-only-one – unbeli 2010-06-21 07:54:52

回答

0

嘗試這種模式,請

^(。+ [^ /])/,而不是$ ^(+)/ $

+0

沒有工作,沒有區別。 – user367217 2010-06-21 08:05:52

+0

我想這是因爲循環。嘗試設置maxredirect選項。有關詳細信息,請點擊鏈接。 http://articles.sitepoint.com/print/mod_rewrite-no-endless-loops – 2010-06-21 09:26:44