Щоб перенаправити відвідувача на іншу сторінку (особливо корисно в умовному циклі), просто використовуйте наступний код:
<?php
header('Location: mypage.php');
?>
У цьому випадку mypage.php
- це адреса сторінки, на яку ви хочете перенаправити відвідувачів. Ця адреса може бути абсолютною, а також може містити параметри в цьому форматі:mypage.php?param1=val1&m2=val2)
Відносний / абсолютний шлях
Маючи справу з відносними або абсолютними шляхами, ідеально вибрати абсолютний шлях від кореня сервера (DOCUMENT_ROOT). Використовуйте наступний формат:
<?php
header('Location: /directory/mypage.php');
?>
Якщо коли-небудь цільова сторінка знаходиться на іншому сервері, ви включаєте повну URL-адресу:
<?php
header('Location: http://www.ccm.net/forum/');
?>
HTTP заголовки
Відповідно до протоколу HTTP, заголовки HTTP повинні бути надіслані before
будь-який тип вмісту. Це означає, що жоден символ не повинен надсилатися перед заголовком - навіть порожній пробіл!
Тимчасові / постійні перенаправлення
За замовчуванням тип перенаправлення, представлений вище, є тимчасовим. Це означає, що пошукові системи, такі як пошук Google, не будуть враховувати перенаправлення під час індексації.
Якщо ви хочете повідомити пошукові системи, що сторінка була постійно переміщена в інше місце, скористайтеся таким кодом:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: new_address');
?>
Наприклад, на цій сторінці є такий код:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: /pc/imprimante.php3');
exit();
?>
Коли ви натискаєте на посилання вище, вас автоматично переспрямовують на цю сторінку. Більше того, це постійне перенаправлення (Статус: 301 Перенесено постійно). Отже, якщо ви введете першу URL-адресу в Google, ви автоматично будете перенаправлені на друге перенаправлене посилання.
Тлумачення PHP-коду
PHP-код, розташований після заголовка (), буде інтерпретований сервером, навіть якщо відвідувач переміститься за адресою, вказаною в переадресації. У більшості випадків це означає, що вам потрібен метод для виконання header()
функції exit()
функції, щоб зменшити навантаження сервера:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: address');
exit();
?>