htaccess - 删除尾随正斜杠除外

时间:2011-08-22 09:28:51

标签: apache .htaccess mod-rewrite

我在htaccess中有以下内容来删除尾部斜杠:

#RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
#RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

这很好用,但我现在需要为该规则添加一个例外。 我有一个文件夹(让我们称之为'myfolder')需要一个尾部斜杠。有可能修改上述条件以允许这个吗?

1 个答案:

答案 0 :(得分:2)

当然,像这样,例如:

RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/myfolder/$
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

这会将http://example.com/myfolder/排除在重定向到http://example.com/myfolder之外。如果myfolder位于子文件夹中,则需要相应地更改重写条件中的路径。


如果您要排除myfolder,无论其位于何处(例如/myfolder//something/myfolder//something/interesting/myfolder/),请相应地更改重写条件:

RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !/myfolder/$
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]