Apache 奇怪的拖尾斜杠问题
我在Apache服务器的document_root下有一个文件夹。 当我输入时,它不会重定向到,而是转到。请注意,域名后有两个斜杠 我找不到为这种重定向设置的任何mod rewrite规则。有人能想出其他可能的原因吗 另外,在Apache中,从重定向到由什么来完成?(注意“帮助”是真实的文件夹,没有名为“帮助”的文件)Apache 奇怪的拖尾斜杠问题,apache,redirect,Apache,Redirect,我在Apache服务器的document_root下有一个文件夹。 当我输入时,它不会重定向到,而是转到。请注意,域名后有两个斜杠 我找不到为这种重定向设置的任何mod rewrite规则。有人能想出其他可能的原因吗 另外,在Apache中,从重定向到由什么来完成?(注意“帮助”是真实的文件夹,没有名为“帮助”的文件) 谢谢 第一个猜测是,应用程序配置的基本URL有一个条目,在您的情况下,它以/结尾,导致应用程序的内部路由系统添加额外的斜杠 答复询问者的评论: 查看.htaccess文件。 如果
谢谢 第一个猜测是,应用程序配置的基本URL有一个条目,在您的情况下,它以
/
结尾,导致应用程序的内部路由系统添加额外的斜杠
答复询问者的评论:
查看.htaccess文件。
如果它看起来像这样(顺便说一下,这是WordPress安装默认使用的):
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
然后它将尝试从实际目录加载/help
。
但是如果它不包含
-f
和-d
行,它将通过应用程序入口点加载每个请求,无论请求的项是否存在于文件系统中。最后我发现这是Apache的一个bug。
谢谢。但这没有帮助。请注意,“帮助”是一个真实的文件夹,所以我们不应该期望任何重定向。注释不能做换行吗?烦人的更新了初始答案。我认为“!-f”表示不是文件,“!-d”表示不是目录。“help”是目录,因此不应用重写规则。无论如何,我们不使用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>