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

Linda Hamilton
發布: 2024-11-02 16:16:29
原創
899 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板