【问题标题】:htaccess - Remove trailing forward slash except forhtaccess - 删除尾部正斜杠,除了
【发布时间】:2011-08-22 09:28:50
【问题描述】:
我在 htaccess 中有以下内容来删除尾部斜杠:
#RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
#RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
这很好用,但我现在需要为该规则添加一个例外。
我有一个需要斜杠的文件夹(我们称之为“myfolder”)。是否可以修改上述条件以允许这样做?
【问题讨论】:
标签:
apache
.htaccess
mod-rewrite
【解决方案1】:
当然,像这样,例如:
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]