При серьезной разработке сайта возникает необходимость выдавать корректные http заголовки php средствами.
Вы спросите - зачем? Затем, что корректность HTTP-заголовков влияет на то, как будут понимать поисковые роботы получаемую с вашего сайта информацию, что напрямую влияет на продвижение сайта, т.е. на "СЕО".
ВАЖНО ПОМНИТЬ!
мордифицировать HTTP header с помощью языка php возможно только если директива header выводится на клиента до формировании страницы, то есть до вывода любой иной инофрмации.
В противном случае назначение нового статуса HTTP заголовку / header выдает ошибку.
Как изменить код ответа сервера.
В большинстве случаев заголовки изменяются непосредственно в ваших php функциях (методах).
<?php
function checkUrl( $url )
{
if( preg_match( "/^http.*/i", $url ) == false )
header( 'Location: http://www.ru/404.html' );
}
...
?>
Рассмотрим несколько примеров модификации HTTP заголовков.
Страница выполнена корректно
header( 'HTTP/1.1 200 OK' );
Запрашиваемая страница не найдена
header( 'HTTP/1.1 404 Not Found' );
Доступ запрещен:
header( 'HTTP/1.1 403 Forbidden' );
Страница перемещена навсегда.
Используется для корректировки урлов поисковых серверов.
header( 'HTTP/1.1 301 Moved Permanently' );
Сервер выполнил скрипт с ошибкой
header( 'HTTP/1.1 500 Internal Server Error' );
Если требуется перенаправить на другой url
Перенаправление на указанный адресу
header( 'Location: http://www.ru/' );
Перенаправление на указанный адрес с задержкой в 5 секунд
в принципе это калька HTML тега
<meta http-equiv="refresh" content="5;http://www.ru/ />
header( 'Refresh: 5; url=http://www.ru/' );
Заголовки кодировки и языка
Содержимое страницы использует язык:
header( 'Content-language: en' ); // en = English
Как поменять кодировку
header('Content-Type: text/html; charset=utf-8');
Модификация заголовков для управления контентом
header( 'Content-Type: application/octet-stream' );
header( 'Content-Disposition: attachment; filename="example.zip"' );
header( 'Content-Transfer-Encoding: binary' );
Установка content type
header('Content-Type: text/plain'); // plain text file
header('Content-Type: image/jpeg'); // JPG picture
header('Content-Type: audio/mpeg'); // Audio MPEG (MP3,...) file
header('Content-Type: application/x-shockwave-flash'); // Flash animation
Иные манипуляции с заголовками
как средствами php изменять header для поисковых роботов
Содержимое страницы последний раз изменялось
header( 'Last-Modified: '.gmdate( 'D, d M Y H:i:s', ( time() - 60 ) ).' GMT' );
Длинна содержимого страницы
header( 'Content-Length: 2048' );
Отключение кеширования страницы:
header( 'Cache-Control: no-cache, no-store, max-age=0, must-revalidate' );
header( 'Expires: Mon, 1 Apr 2001 01:02:03 GMT' );
header( 'Pragma: no-cache' );