Để chuyển hướng khách truy cập đến một trang khác (đặc biệt hữu ích trong vòng lặp có điều kiện), chỉ cần sử dụng mã sau đây:
<?php
header('Location: mypage.php');
?>
Trong trường hợp này, mypage.php
là địa chỉ của trang mà bạn muốn chuyển hướng khách truy cập. Địa chỉ này có thể là tuyệt đối và cũng có thể bao gồm các tham số trong định dạng này:mypage.php?param1=val1&m2=val2)
Con đường tương đối / tuyệt đối
Khi xử lý các đường dẫn tương đối hoặc tuyệt đối, lý tưởng là chọn một đường dẫn tuyệt đối từ thư mục gốc của máy chủ (DOCUMENT_ROOT). Sử dụng định dạng sau:
<?php
header('Location: /directory/mypage.php');
?>
Nếu bao giờ trang đích nằm trên một máy chủ khác, bạn sẽ bao gồm URL đầy đủ:
<?php
header('Location: http://www.ccm.net/forum/');
?>
Tiêu đề HTTP
Theo giao thức HTTP, các tiêu đề HTTP phải được gửi before
bất kỳ loại nội dung nào. Điều này có nghĩa là không có ký tự nào được gửi trước tiêu đề - thậm chí không phải là một khoảng trống!
Chuyển hướng tạm thời / vĩnh viễn
Theo mặc định, loại chuyển hướng được trình bày ở trên là tạm thời. Điều này có nghĩa là các công cụ tìm kiếm, như Google Tìm kiếm, sẽ không tính đến việc chuyển hướng khi lập chỉ mục.
Nếu bạn muốn thông báo cho các công cụ tìm kiếm rằng một trang đã được di chuyển vĩnh viễn đến một vị trí khác, hãy sử dụng mã sau đây:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: new_address');
?>
Ví dụ: trang này có mã sau:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: /pc/imprimante.php3');
exit();
?>
Khi bạn nhấp vào liên kết ở trên, bạn sẽ tự động được chuyển hướng đến trang này. Hơn nữa, nó là một chuyển hướng vĩnh viễn (Trạng thái: 301 Đã di chuyển vĩnh viễn). Vì vậy, nếu bạn nhập URL đầu tiên vào Google, bạn sẽ tự động được chuyển hướng đến liên kết được chuyển hướng thứ hai.
Giải thích mã PHP
Mã PHP nằm sau tiêu đề () sẽ được máy chủ giải thích, ngay cả khi khách truy cập di chuyển đến địa chỉ được chỉ định trong chuyển hướng. Trong hầu hết các trường hợp, điều này có nghĩa là bạn cần một phương thức để theo header()
chức năng của exit()
hàm để giảm tải của máy chủ:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: address');
exit();
?>