奇怪的尾随斜线问题

时间:2012-04-04 02:42:50

标签: apache redirect

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

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

另外,在Apache中,从http://www.example.com/help重定向到http://www.example.com/help/是由什么做的? (注意'help'是真实文件夹,并且没有名为'help'的文件。)

谢谢!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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加载。 但如果它不包含!-f!-d行,它将通过应用程序入口点加载每个请求,无论请求的项目是否存在于文件系统中。