0

我在 Apache 服务器的 document_root 下有一个文件夹。当我输入http://www.example.com/help时,它不会重定向到http://www.example.com/help/,而是转到http://www.exmaple.com//help/ . 注意域名后面有两个斜杠。

我找不到为这种重定向设置的任何 mod-rewrite 规则。谁能想到其他可能的原因?

此外,在 Apache 中,从http://www.example.com/help重定向到http://www.example.com/help/是由什么完成的?(注意“help”是真正的文件夹,没有名为“help”的文件)。

谢谢!

4

2 回答 2

2

最后我发现这是Apache的一个错误。 https://issues.apache.org/bugzilla/show_bug.cgi?id=51982

于 2012-04-04T21:11:48.910 回答
0

第一个猜测是您的应用程序配置有一个项目作为其基本 URL,在您的情况下,它以 结尾/,导致应用程序的内部路由系统添加额外的斜杠。

回复提问者评论:

查看您的 .htaccess 文件。如果它看起来像这样(顺便说一下,这是 WordPress 安装默认使用的):

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

然后它将尝试从实际目录加载/help。但是如果它不包含!-fand!-d行,它将通过应用程序入口点加载每个请求,无论请求的项目是否存在于文件系统中。

于 2012-04-04T02:45:35.793 回答