以下是一些標題選項,重點關注問題和解決方案: 選項 1(直接、簡潔): 如何確定 PHP 中正確的網站 URL 協定(http 與 https) 選項 2(強調查

DDD
發布: 2024-10-27 11:50:02
原創
113 人瀏覽過

Here are a few title options, focusing on the problem and solution:

Option 1 (Direct and concise):
How to Determine the Correct Site URL Protocol in PHP (http vs https)

Option 2 (Emphasizing the challenge):
PHP: Accurately Detecting Site URL Protocol (h

PHP 取得網站URL 協定- http 與https

問題介紹

確定目前網站URL 協定(http 或https)對於確保安全且一致的網站運作。然而,在本地開發或沒有 SSL 的情況下,測試此類函數的準確性可能具有挑戰性。

函數實作

提供的函數「siteURL」嘗試根據是否存在建立協定$_SERVER 陣列中的「HTTPS」鍵及其非空或「off」值。或者,它檢查“SERVER_PORT”是否為 443。如果滿足任一條件,則傳回“https://”,否則回傳“http://”。

替代方案和問題

在沒有 SSL 的情況下,準確確定協定需要檢查 $_SERVER 陣列。但是,如果 SSL 處於活動狀態,即使錨標記 URL 使用 http,伺服器也會自動將 URL 轉換為 https。因此,似乎沒有必要檢查協議。

改進的實作

為了解決這個問題,透過檢查 $_SERVER 中的 HTTPS 和 HTTP 協定指示符提出了改進的實作大批。如果滿足這些條件中的任何一個,則函數將傳回正確的協定。

<code class="php">if (isset($_SERVER['HTTPS']) &&
    ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
    isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
    $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
  $protocol = 'https://';
}
else {
  $protocol = 'http://';
}</code>
登入後複製

無論是否啟用 SSL,此方法都可確保這兩種情況的準確性。

以上是以下是一些標題選項,重點關注問題和解決方案: 選項 1(直接、簡潔): 如何確定 PHP 中正確的網站 URL 協定(http 與 https) 選項 2(強調查的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!