Tutorial ubah hala dalam PHP

王林
Lepaskan: 2023-09-01 17:54:01
asal
1425 orang telah melayarinya

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.

Belajar PHP dengan kursus dalam talian percuma

Jika anda ingin belajar PHP, lihat kursus dalam talian percuma kami tentang Asas PHP!

Bagaimana cara ubah hala asas berfungsi?

Sebelum kita menyelami butiran pengalihan PHP, mari kita lihat dengan pantas cara pengalihan HTTP sebenarnya berfungsi. Tengok gambar kat bawah ni.

Tutorial ubah hala dalam PHP

Mari kita ketahui apa yang berlaku dalam tangkapan skrin di atas:

  • Pelayar klien meminta halaman tertentu daripada pelayan. Dalam contoh di atas, pelanggan meminta kandungan fail index.php.
  • Pelayan telah menerima permintaan untuk fail index.php dan ingin memberitahu pelanggan bahawa fail itu tidak lagi tersedia atau telah dialihkan ke lokasi lain dan harus mencari fail baharu: new_index.php. PHP. Pelayan menghantar pengepala Lokasi dengan URL baharu dan kod HTTP 301 atau 302. Ini ialah kod HTTP yang digunakan untuk ubah hala. Location 标头以及 301 或 302 HTTP 代码。这些是用于重定向的 HTTP 代码。
  • 当客户端浏览器遇到 301 或 302 代码时,它知道必须向新 URL 发起另一个请求才能获取内容。它发起一个请求来获取上例中的 new_index.php 文件。

  • 最后,服务器发送新网址的内容。

这就是基本 HTTP 重定向的工作原理。在下一节中,我们将讨论 PHP 重定向的工作原理。

PHP 中的重定向如何工作

在 PHP 中,当你想将用户从一个页面重定向到另一个页面时,你需要使用 header() 函数。 header 函数允许您发送原始 HTTP 位置标头,该标头执行我们在上一节中讨论的实际重定向。

如何使用标头功能

让我们看一下 header() 函数的语法。

header( $header, $replace, $http_response_code )
Salin selepas log masuk
  • $header:这是您要使用的 HTTP 标头字符串。在我们的例子中,我们将使用 Location 标头进行重定向。
  • $replace:这是一个可选参数,指示标头是否应替换以前的类似标头。
  • $http_response_code:它允许您发送特定的响应代码。

现在,让我们看一下以下示例,了解它们是如何协同工作的。

<?php
// index.php
header("Location: https://www.yoursite.com/new_index.php");
exit();
?>
Salin selepas log masuk

执行上述脚本时,会将客户端浏览器重定向到 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();
?>
Salin selepas log masuk

301 永久重定向允许您通知搜索机器人该页面不再可用,可以用新页面替换。

为什么要在标头重定向后使用 Die()Exit() 函数?

眼尖的用户应该会注意到,我在上面的例子中使用了 exit() 函数。事实上,您必须在标头重定向之后立即使用 exit()die() 函数来停止脚本执行并避免任何不良结果。

因此,始终建议在重定向后使用这些函数之一。

著名错误:标头已发送

如果您是一位经验丰富的 PHP 程序员,我确信您在日常 PHP 开发中的某个时候遇到过这个著名的 PHP 错误。然而,对于初学者来说,遇到这个错误确实很烦人,因为它很难调试和修复。在大多数情况下,他们甚至不知道这是由标头重定向引起的。

经验法则是,当您在脚本中使用 header()

Apabila pelayar klien menemui kod 301 atau 302, ia tahu ia mesti membuat permintaan lain kepada URL baharu untuk mendapatkan kandungan. Ia membuat permintaan untuk mendapatkan fail new_index.php dalam contoh di atas.

Akhir sekali, pelayan menghantar kandungan URL baharu.

Beginilah cara pengalihan HTTP asas berfungsi. Dalam bahagian seterusnya, kita akan membincangkan cara pengalihan PHP berfungsi.

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. 🎜

Tutorial ubah hala dalam PHP

Berikut ialah beberapa skrip PHP yang paling laris dan terkini yang tersedia di CodeCanyon pada tahun 2020.

  • Tutorial ubah hala dalam PHP

  • Tutorial ubah hala dalam PHP

  • Tutorial ubah hala dalam PHP

  • Tutorial ubah hala dalam PHP

  • Tutorial ubah hala dalam PHP

  • Atas ialah kandungan terperinci Tutorial ubah hala dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:php.cn
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!