Примеры перенаправления страниц сайтов

Иногда приходится менять адреса страниц или вообще доменные имена сайтов. Чтобы не потерять аудиторию и избежать ошибок при обращении к страницам по старым адресам обычно делают перенаправления или редиректы страниц по их новым адресам. Несколько примеров таких редиректов. 

Редирект на html

Располагается в заголовке html документа

<html>
<head>
<meta http-equiv="refresh" content="0; url=http://example.com/" />
</head>
<body>
</body>
</html>

В этом примере перенаправление происходит по адресу http://example.com/ через 0 секунд. Продолжительность задержки может быть произвольной, а сам документ может содержать некий контент, который будет отображаться пока не произойдет перенаправление.

PHP redirect

Один из самых простых способов

<?php
 header('Location: '.$newURL);
?>

В переменной newURL новый адрес страницы, куда и происходит перенаправление. Правда, редирект должен делаться до вывода любой информации скриптом.

Ну или совсем просто:

<?php
 header('Location: http://example.com/');
?>

Перенаправление конкретных страниц в .htaccess

Не сложней предыдущего варианта:

Redirect /page1.html http://www.example.com/page2.html

То есть просто откуда и куда. После слова Redirect можно указывать статус перенаправления, наиболее часто используется 301, полный список можно легко найти в интернете.

Redirect 301 /page2.html http://www.example.com/page3.html

mod_rewrite .htaccess redirect

Этот способ может использоваться и для статических, и для динамических страниц. Например, редирект на имя сайта с префиксом www:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
</IfModule>

То же самое наоборот, когда ссылки сайта www.example.com переадрессовываются на такие же ссылки сайта example.com

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
</IfModule>

Впрочем, на самом деле оба эти варианта будут перенаправлять ссылки всех сайтов, которые не соответствуют необходимому.

nginx

Примерно то же самое, но для веб-сервера nginx, который не умеет работать с файлами .htaccess, для него редирект должен вписываться непосредственно в конфигурацию нужного сайта

if ($host != "example.com" ) {
rewrite ^/(.*)$ http://example.com/$1 permanent;
}

 Список будет дополняться по мере обнаружения новых полезных способов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.