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