Mendapatkan URL Penuh Halaman Semasa pada Pelayan Windows/IIS
Anda telah menghadapi masalah semasa menyediakan 301 ubah hala dalam PHP pada pelayan Windows/IIS. Walaupun menggunakan $_SERVER["REQUEST_URI"], hasil yang dijangkakan tidak diperolehi. Artikel ini bertujuan untuk menjelaskan isu ini dan menyediakan penyelesaian.
Memahami Masalah
Pada pelayan Apache, $_SERVER["REQUEST_URI"] biasanya menyimpan keseluruhan URL. Walau bagaimanapun, pada pelayan Windows/IIS, pembolehubah ini mungkin tidak memberikan hasil yang diingini. Ini kerana IIS menggunakan mekanisme pengendalian permintaan yang berbeza berbanding Apache.
Penyelesaian: Menggunakan $_SERVER['PATH_INFO']
Untuk pelayan Windows/IIS, pembolehubah yang betul untuk digunakan ialah $_SERVER['PATH_INFO']. Pembolehubah ini mengandungi bahagian URL selepas laluan asas skrip. Dalam kes anda, ia ialah "/post-title/".
Contoh Penggunaan
Berikut ialah contoh cara anda boleh menggunakan $_SERVER['PATH_INFO'] dalam kod PHP anda:
<code class="php">$currentURL = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PATH_INFO'];</code>
Kod ini akan memberikan URL penuh, termasuk segmen "/post-title/", kepada pembolehubah $currentURL.
Kesimpulan
Walaupun $_SERVER["REQUEST_URI"] biasanya digunakan untuk tujuan ini, ia mungkin tidak berfungsi seperti yang diharapkan pada pelayan Windows/IIS. Dengan menggunakan $_SERVER['PATH_INFO'] sebaliknya, anda boleh mendapatkan semula URL penuh halaman semasa dengan tepat pada pelayan Windows/IIS.
Atas ialah kandungan terperinci Mengapakah $_SERVER[\'REQUEST_URI\'] Tidak Menyediakan URL Penuh pada Pelayan Windows/IIS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!