Htaccess - 删除除目录和子目录之外的所有尾部斜杠

时间:2017-09-09 22:26:57

标签: apache .htaccess mod-rewrite

我在.htaccess文件中使用以下代码从网址中删除尾部斜杠:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.*)/$
RewriteRule ^ /%1 [R=301,L]

我想为此规则添加例外。我想保留目录和子目录的斜杠。我对Apache的了解非常有限,所以任何帮助都会受到赞赏。

提前致谢

1 个答案:

答案 0 :(得分:0)

您需要编写斜杠所需的文件夹。

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

或者您可以编写将忽略规则的文件夹:

RewriteRule ^(folder|folder1|folder2|folder3)($|/) - [L]

警告:对于文件夹,将忽略所有规则。