在 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中文网其他相关文章!