mod_rewrite:删除尾部斜杠(只有一个!)

时间:2010-06-21 07:37:49

标签: apache .htaccess mod-rewrite redirect rewrite

我将mod_rewrite / .htaccess用于漂亮的网址。

我正在使用这个条件/规则来消除尾部斜杠(或者更确切地说:通过301重定向重写到非尾随斜杠网址;我这样做是为了避免重复内容,因为我喜欢使用URL没有尾随斜杠更好):

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

目前运作良好。唯一的缺点:
它还将“multiple-trailing-slash”-URLs 转发给非尾随斜杠网址

例:
http://example.tld/foo/bar//////转发http://example.tld/foo/bar 虽然我只希望http://example.tld/foo/bar/转发到http://example.tld/foo/bar

那么,如果它实际只是只有一个尾部斜杠,是否有可能只消除尾部斜杠?

对不起,如果这是一个有点烦人或奇怪的问题!

感谢。

1 个答案:

答案 0 :(得分:0)

请尝试这种模式

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