PHP Dapatkan Protokol URL Tapak: HTTP vs HTTPS
Menentukan protokol URL tapak semasa (HTTP atau HTTPS) dalam PHP adalah penting untuk selamat dan operasi laman web yang konsisten. Dalam artikel ini, kami akan meneroka nuansa pengesanan protokol dan menjawab soalan berkaitan.
Pada mulanya, anda menyediakan fungsi yang bertujuan untuk mewujudkan protokol berdasarkan pembolehubah pelayan tertentu. Walau bagaimanapun, kami akan mencadangkan pendekatan alternatif yang memudahkan proses.
Fungsi Pengesanan Protokol yang Diperbaiki:
<code class="php">function siteURL() { $protocol = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; $domainName = $_SERVER['HTTP_HOST'].'/'; return $protocol.$domainName; } define( 'SITE_URL', siteURL() );</code>
Fungsi yang dipertingkatkan ini:
Mengendalikan SSL dan Penukaran:
Di bawah SSL, penyemak imbas moden biasanya menukar URL HTTP kepada HTTPS secara automatik. Walau bagaimanapun, pelayan tidak menguatkuasakan penukaran ini. Jika URL tag anchor anda masih menggunakan HTTP, fungsi siteURL() akan mengembalikan HTTP dengan betul.
Implikasi Keselamatan:
Secara umum, pengesanan protokol tidak diperlukan untuk operasi selamat di bawah SSL. Walau bagaimanapun, ia boleh berguna dalam senario tertentu di mana anda ingin mentakrifkan protokol secara eksplisit dalam skrip atau URL.
Jawapan Terpilih:
Fungsi yang dicadangkan yang disediakan dalam jawapan yang anda terima:
<code class="php">if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) || ...</code>
Walaupun betul dari segi teknikal, ia tidak perlu mengembangkan logik untuk mengesan HTTPS. Fungsi dipermudahkan yang dibentangkan di atas mencapai hasil yang sama dengan lebih ringkas.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Protokol URL Tapak Anda (HTTP atau HTTPS) dengan Amanah dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!