mod_rewrite'添加path信息后缀:'

为什么我的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