奇怪的结尾斜杠问题
问题描述:
我在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'的文件)。
谢谢!
答
第一个猜测是,您的应用程序配置中有一个用于其基本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
行,它将通过应用程序入口点加载每个请求,无论请求的项目是否存在于文件系统中。
谢谢。但它没有帮助。请注意,'help'是一个真正的文件夹,所以我们不应该期待任何重定向。 – 2012-04-04 02:56:57
评论不能做新行?烦人...更新了最初的答案。 – Ariel 2012-04-04 03:04:57
我认为“!-f”表示不是文件,“!-d”表示不是目录。 “帮助”是目录,因此不应用重写规则。无论如何,我们并没有使用WordPress。 – 2012-04-04 13:41:32