首頁 >後端開發 >php教程 >為什麼 $_SERVER[\'REQUEST_URI\'] 不提供 Windows/IIS 伺服器上的完整 URL?

為什麼 $_SERVER[\'REQUEST_URI\'] 不提供 Windows/IIS 伺服器上的完整 URL?

Linda Hamilton
Linda Hamilton原創
2024-11-02 16:16:29919瀏覽

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