为什么本地主机上会出现神秘的页面重定向?

为什么本地主机上会出现神秘的页面重定向?

我将这个问题从https://stackoverflow.com/questions/59259672/why-is-there-a-mysterious-page-redirection-on-localhost在 StackOverflow 上

我在 localhost 上开发网站时,几天来一直看到这种非常奇怪的现象。当我访问 localhost/thesiliconvalleyjournal 时,它会立即将我重定向到 localhost/pages/siliconvalleyjournal.php。

请注意没有使用“the”。

我刚刚使用 XAMPP 的卸载可执行文件 (uninstall.exe) 卸载了 XAMPP,然后从官方网站重新安装了最新版本。在此之前,我删除了整个本地主机中的所有 .htaccess 文件和所有目录(我使用 Git 轻松恢复了这些文件)。我尝试过的所有方法都无法阻止重定向。

重新安装并重置设置后(因为 XAMPP 设置混乱似乎是唯一可能的原因),我预计它会在不重定向的情况下给我一个 404 未找到错误。实际结果是重定向到 后出现 404 错误siliconvalleyjournal/pages/index.php。我确实有一个名为 thesiliconvalleyjournal 的文件夹,但我不会将其重新插入,直到我修复它。

编辑

我工作的目录是 XAMPP 提供的默认目录。它没有 .htaccess 文件或 thesiliconvalleyjournal 文件夹。

答案1

您可以使用 cURL 软件检查哪些服务器回复了特定的请求,cURL 软件是 Web 开发人员必备的工具:

curl -I http://localhost/thesiliconvalleyjournal

-I表示“仅获取标头”,即 HTTP HEAD 请求。如果回复以类似以下内容开头

HTTP 1.1 302 Found
...
Location: ...

或任何其他 3xx 状态代码,这确实是重定向,您会在 Web 服务器访问日志中找到此信息。如果还有其他状态代码(对于这种情况,我希望是200 OK状态),则服务器未请求重定向。

此重定向可能是由服务器配置引起的。Apache HTTP 配置的主要来源是httpd.conf文件及其包含的文件。您需要搜索所有配置文件并找出是否有任何 Redirect(或 Redirect*)语句。然后,识别并删除有问题的重定向。

您使用的是 XAMPP,这可能意味着您的配置文件由一些与 XAMPP 不兼容的工具管理。在这种情况下,您必须摆弄该工具,而不是手动编辑配置文件,否则下次使用该工具时,您的编辑可能会被还原,或者工具可能会失败。

此重定向也可能由 php 代码引起。例如,如果您调用某个header()函数,则可以发出一个Location标头,这暗示重定向。

HTTP 元标记内也可能有重定向。它可能看起来像这样:

<meta http-equiv="refresh" content="0;URL='http://the.redirect.url/and/path'">

它应该位于<head>部分中。然后,此标记必须存在于静态文件中,或由 PHP 生成。

您也可以使用 cURL 检查这一点,但现在没有-I标志,因为您现在需要检查页面主体。

答案2

我不得不清除浏览器缓存然后将 DocumentRoot 放回我的项目,现在一切都正常了!我仍然不知道它到底来自哪里,但这确实奏效了。

相关内容