Ubah hala membolehkan anda mengubah hala pelayar klien ke URL yang berbeza. Anda boleh menggunakannya semasa menukar domain, menukar struktur tapak anda atau bertukar kepada HTTPS.
Dalam artikel ini, saya akan menunjukkan kepada anda cara mengubah hala ke halaman lain menggunakan PHP. Saya akan menerangkan dengan tepat cara ubah hala PHP berfungsi dan menunjukkan kepada anda apa yang berlaku di sebalik tabir.
Jika anda ingin belajar PHP, lihat kursus dalam talian percuma kami tentang Asas PHP!
Sebelum kita menyelami butiran pengalihan PHP, mari kita lihat dengan pantas cara pengalihan HTTP sebenarnya berfungsi. Tengok gambar kat bawah ni.
Mari kita ketahui apa yang berlaku dalam tangkapan skrin di atas:
Lokasi
dengan URL baharu dan kod HTTP 301 atau 302. Ini ialah kod HTTP yang digunakan untuk ubah hala. Location
标头以及 301 或 302 HTTP 代码。这些是用于重定向的 HTTP 代码。
new_index.php
文件。
这就是基本 HTTP 重定向的工作原理。在下一节中,我们将讨论 PHP 重定向的工作原理。
在 PHP 中,当你想将用户从一个页面重定向到另一个页面时,你需要使用 header()
函数。 header 函数允许您发送原始 HTTP 位置标头,该标头执行我们在上一节中讨论的实际重定向。
让我们看一下 header()
函数的语法。
header( $header, $replace, $http_response_code )
$header
:这是您要使用的 HTTP 标头字符串。在我们的例子中,我们将使用 Location
标头进行重定向。$replace
:这是一个可选参数,指示标头是否应替换以前的类似标头。$http_response_code
:它允许您发送特定的响应代码。现在,让我们看一下以下示例,了解它们是如何协同工作的。
<?php // index.php header("Location: https://www.yoursite.com/new_index.php"); exit(); ?>
执行上述脚本时,会将客户端浏览器重定向到 http://www.yoursite.com/new_index.php。在后台,它发送原始 HTTP Location
标头以及 302 状态代码。 302状态码用于临时重定向,但如果您想要永久重定向,可以在第三个参数中传递301状态码,如以下代码片段所示。
<?php // index.php header("Location: http://www.yoursite.com/new_index.php", TRUE, 301); exit(); ?>
301 永久重定向允许您通知搜索机器人该页面不再可用,可以用新页面替换。
Die()
或 Exit()
函数?眼尖的用户应该会注意到,我在上面的例子中使用了 exit()
函数。事实上,您必须在标头重定向之后立即使用 exit()
或 die()
函数来停止脚本执行并避免任何不良结果。
因此,始终建议在重定向后使用这些函数之一。
如果您是一位经验丰富的 PHP 程序员,我确信您在日常 PHP 开发中的某个时候遇到过这个著名的 PHP 错误。然而,对于初学者来说,遇到这个错误确实很烦人,因为它很难调试和修复。在大多数情况下,他们甚至不知道这是由标头重定向引起的。
经验法则是,当您在脚本中使用 header()
new_index.php
dalam contoh di atas.
Akhir sekali, pelayan menghantar kandungan URL baharu.
Cara Ubah Hala Berfungsi dalam PHP🎜 🎜Dalam PHP, apabila anda ingin mengubah hala pengguna dari satu halaman ke halaman lain, anda perlu menggunakan fungsi
header()
. Fungsi pengepala membolehkan anda menghantar pengepala lokasi HTTP mentah, yang melakukan ubah hala sebenar yang kami bincangkan dalam bahagian sebelumnya. 🎜
🎜Cara menggunakan fungsi pengepala🎜
🎜Mari kita lihat sintaks fungsi header()
. 🎜
rrreee
🎜
🎜
$header
: Ini ialah rentetan pengepala HTTP yang anda mahu gunakan. Dalam kes kami, kami akan menggunakan pengepala Lokasi
untuk ubah hala. 🎜
🎜
$replace
: Ini ialah parameter pilihan yang menunjukkan sama ada pengepala harus menggantikan pengepala serupa sebelumnya. 🎜
🎜
$http_response_code
: Ia membenarkan anda menghantar kod respons tertentu. 🎜
🎜Sekarang, mari lihat contoh berikut untuk melihat cara ia berfungsi bersama. 🎜
rrreee
🎜Apabila skrip di atas dilaksanakan, pelayar klien akan diubah hala ke http://www.yoursite.com/new_index.php. Di sebalik tabir, ia menghantar pengepala Lokasi
HTTP mentah bersama-sama dengan kod status 302. Kod status 302 digunakan untuk ubah hala sementara, tetapi jika anda mahukan ubah hala kekal, anda boleh menghantar kod status 301 dalam parameter ketiga seperti yang ditunjukkan dalam coretan kod berikut. 🎜
rrreee
🎜301 Permanent Redirect membolehkan anda memberitahu bot carian bahawa halaman itu tidak lagi tersedia dan boleh digantikan dengan yang baharu. 🎜
🎜Mengapa menggunakan fungsi Die()
atau Exit()
selepas ubah hala pengepala? 🎜
🎜Pengguna bermata helang akan perasan bahawa saya menggunakan fungsi exit()
dalam contoh di atas. Sebenarnya, anda mesti menggunakan fungsi exit()
atau die()
sejurus selepas ubah hala pengepala untuk menghentikan pelaksanaan skrip dan Elakkan sebarang akibat buruk. 🎜
🎜Jadi sentiasa disyorkan untuk menggunakan salah satu fungsi ini selepas ubah hala. 🎜
🎜Ralat Terkenal: Tajuk Dihantar🎜
🎜Jika anda seorang pengaturcara PHP yang berpengalaman, saya pasti anda pernah mengalami ralat PHP yang terkenal ini pada satu ketika dalam pembangunan PHP harian anda. Walau bagaimanapun, bagi pemula, menghadapi ralat ini benar-benar menjengkelkan kerana sukar untuk nyahpepijat dan diperbaiki. Dalam kebanyakan kes, mereka tidak tahu bahawa ia disebabkan oleh ubah hala pengepala. 🎜
🎜Rule of thumb ialah apabila anda menggunakan fungsi header()
dalam skrip, anda perlu memastikan tiada output dihantar sebelum itu. Jika tidak, PHP akan mengadu dengan ralat "Header Sent". Ini boleh berlaku walaupun anda menghantar ruang sebelum menggunakan fungsi pengepala. 🎜
🎜Kesimpulan🎜
🎜Dalam artikel ini, kami membincangkan salah satu ciri penting pengaturcaraan PHP: pengalihan semula. Mula-mula, kami melihat asas pengalihan HTTP dan kemudian menunjukkan cara ia berfungsi dalam PHP. 🎜
🎜Skrip PHP terbaik di CodeCanyon🎜
🎜 Terokai beribu-ribu skrip PHP terbaik dan paling berguna yang pernah dibuat di CodeCanyon. Dengan bayaran sekali kos rendah, anda boleh membeli salah satu tema WordPress berkualiti tinggi ini dan meningkatkan pengalaman tapak web untuk anda dan pelawat anda. 🎜
Berikut ialah beberapa skrip PHP yang paling laris dan terkini yang tersedia di CodeCanyon pada tahun 2020.
Atas ialah kandungan terperinci Tutorial ubah hala dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!