为什么我的mod_rewrite这样做?
add path info postfix: /home/mobelluk/public_html/about.php -> /home/mobelluk/public_html/about.php/
这会导致所有事情发生不必要的斜线。
我已经禁用了所有的.htaccess规则,所以他们超出了等式。
是否有可能新的服务器有mod_dir加载,与DirectorySlash On
旧的没有,这是导致这个问题?
(请注意, DirectorySlash On
是默认的,如果mod_dir
被加载,没有什么东西在重写)
显然,在某些情况下,mod_rewrite重新附加后缀部分存在问题https://issues.apache.org/bugzilla/show_bug.cgi?id=38642
问题:
如果.htaccess文件中的多个RewriteRules匹配,那么PATH_INFO的不需要的副本可能会累积在URI的末尾。
如果您使用的是Apache 2.2.12或更高版本,则可以使用DPI标志来阻止此http://httpd.apache.org/docs/2.2/rewrite/flags.html
我通过在虚拟主机选项配置中禁用MultiView来解决此问题。 我正在重写类似下面的东西:
希望重写:
/dir/ -> /dir.html
实际翻译:
/dir/ -> /dir.html (MultiViews) /dir.html -> /dir.html/ (mod_rewrite: 404, didn't exist)
禁用MultiView保持最初的翻译。 我可能已经调整了重写规则来弥补这一点,但是我并没有使用MultiView来做任何事情。
下面的帖子告诉我这个问题: https : //velenux.wordpress.com/2012/07/17/apache-mod_rewrite-multiple-add-path-info-postfix/#comment-1476