首页 >后端开发 >php教程 >为什么 $_SERVER[\'REQUEST_URI\'] 不提供 Windows/IIS 服务器上的完整 URL?

为什么 $_SERVER[\'REQUEST_URI\'] 不提供 Windows/IIS 服务器上的完整 URL?

Linda Hamilton
Linda Hamilton原创
2024-11-02 16:16:29926浏览

Why Isn't $_SERVER[

在 Windows/IIS 服务器上获取当前页面的完整 URL

您在 PHP 中设置 301 重定向时遇到了问题Windows/IIS 服务器。尽管使用 $_SERVER["REQUEST_URI"],但未获得预期结果。本文旨在澄清问题并提供解决方案。

了解问题

在 Apache 服务器上,$_SERVER["REQUEST_URI"] 通常保存整个 URL。但是,在 Windows/IIS 服务器上,此变量可能无法提供所需的结果。这是因为 IIS 使用与 Apache 不同的请求处理机制。

解决方案:使用 $_SERVER['PATH_INFO']

对于 Windows/IIS 服务器,使用的正确变量是 $_SERVER['PATH_INFO']。该变量包含脚本基本路径之后的 URL 部分。在您的情况下,它将是“/post-title/”。

示例用法

以下是如何使用 $_SERVER['PATH_INFO'] 的示例在您的 PHP 代码中:

<code class="php">$currentURL = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PATH_INFO'];</code>

此代码会将完整的 URL(包括“/post-title/”段)分配给 $currentURL 变量。

结论

虽然 $_SERVER["REQUEST_URI"] 通常用于此目的,但它可能无法在 Windows/IIS 服务器上按预期工作。通过使用 $_SERVER['PATH_INFO'] 代替,您可以在 Windows/IIS 服务器上准确检索当前页面的完整 URL。

以上是为什么 $_SERVER[\'REQUEST_URI\'] 不提供 Windows/IIS 服务器上的完整 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn