以下规则适用于删除网络根目录中所有页面的尾部斜杠:
RewriteRule ^(.+)/$ /$1 [L,R=301]
但是,放置在子文件夹中时不起作用。我也试过了:
RewriteRule (.*)/$ /$1 [L,R=301]
无济于事。会发生什么,重定向
http://example.com/testfolder/testpage/
到
我错过了什么?提前谢谢!
答案 0 :(得分:1)
您是否尝试省略替换中的前导斜杠?
RewriteRule ^(.+)/$ $1 [L,R=301]
距离你所拥有的只是一箭之遥。目录重写的上下文(“in”/ testfolder)可能是问题的根本原因。
答案 1 :(得分:0)
你可以在变量中定义它,如果没有其他方法可以满足你的需要,也可以确保在你的php.ini中启用了重写mod。
答案 2 :(得分:0)
尾随斜杠修正由mod_dir
完成。每个目录上下文中的重写将重新注入URL处理链并再次受到修复。
行为是可配置的。 E.g。
<Directory /path/to/wherever>
DirectorySlash Off
...
</Directory>
此上下文不仅是Directory
:它是服务器配置,虚拟主机,目录,.htaccess。