理解PHP 中HTTP_HOST 和SERVER_NAME 的差異
PHP 提供了兩個變量,$_SERVER['HTTP_HOST'] 和HT_HO ' SERVER_NAME'],傳達有關Web 請求主機的訊息。本文將深入探討這些變數之間的差異,並提供何時使用每個變數的指導。
HTTP_HOST
HTTP_HOST 變數是從 HTTP 請求標頭收集的,代表客戶端指定的目標主機。該值可以由用戶代理操作,並且出於安全目的不一定可靠。
SERVER_NAME
SERVER_NAME 變數在伺服器的設定檔中配置,代表託管 PHP 腳本的伺服器的主機名稱。它通常更可靠,因為它在伺服器的控制之下。
在HTTP_HOST 和SERVER_NAME 之間進行選擇
HTTP_HOST 和SERVER_NAME 之間的適當選擇取決於預期用途:
可靠性注意事項
需要注意的是,SERVER_NAME 的可靠性取決於 Web 伺服器的設定。如果 Apache HTTP Server 的 VirtualHost 部分中未啟用 UseCanonicalName 指令,則可能會錯誤地傳回 SERVER_NAME 的 HTTP 主機標頭值。 將 UseCanonicalName 設為「on」可確保 Apache HTTP Server 提供準確的 SERVER_NAME 值。建議驗證伺服器配置,以確保該變數的可靠性。以上是PHP 中的 HTTP_HOST 與 SERVER_NAME:我該使用哪個變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!