Редирект через .htaccess
Содержание:
- Способ 3. Простейший javascript-редирект.
- Проверка редиректа
- Перенаправление в htaccess через mod_rewrite
- 301 редирект со страниц без слеша на страницы со слешем в конце URL
- Цепочки редиректов
- Что такое редирект?
- Другие настройки (CGI, Python, Node.js)
- LightTPD перенаправления
- Redirecting a single URL
- Настройка 301 редиректа со страницы на страницу
- Как сделать редирект
- Есть ли какой-нибудь аналог .htaccess в nginx?
- Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы
- Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы
- Что такое 301 редирект?
- Синтаксис и символы
- В каких случаях используется постоянный редирект 301
- Склейка доменных имен и переезд на новый сайт
- Альтернативные методы переадресации
Способ 3. Простейший javascript-редирект.
Разница этого редиректа в том — что сначала в браузер загружается страничка HTML — потом после её загрузки происходит редирект. Может ощущаться некоторая задержка с появлением «белого экрана» в момент редиректа — в этом небольшой минус перед header-редиректом. Не сработает на компьютерах/браузерах, где отключен javascript. Соответственно REFERER виден именно тот, где был код редиректа (т.е. сама страничка с кодом будет как источник перехода).
Оформляется так (в секции <body> или <head>):
<script > document.location = ‘//leonov-do.ru/’; </script> |
Если на страничке установлен код Яндекс.Метрики — он скорее всего не успеет сработать и засчитать посетителя, т.к. подобный редирект срабатывает быстрее метрики.
Проверка редиректа
Так же, вы можете воспользоваться одним из онлайн-сервисов, которые позволяют просмотреть правильность выполнения редиректа. Например, Redirect Checker. Для выполнения проверки вам нужно:
- 1.Перейти на страницу онлайн-сервиса по этой ссылке
- 2.В поле для ввода указать адрес, с которого должно осуществляться перенаправление в формате http://имя-сайта.ру .
- 3.А затем нажать на кнопку «Analyse».
В результате сервис вам выдаст отчет о правильности работы перенаправления. В моем случае редирект работает не правильно:
Перенаправление вроде бы как происходит, но это происходит несколько раз, и почему то происходит не 301 редирект, а 302. Насколько я поняла, это называется циклический редирект, и такого быть не должно. Поэтому мне нужно пробовать другие варианты.
Так же, вы можете проверить правильность выполнения редиректа для конкретной поисковой системы. Для этого, перед нажатием на кнопку «Analyse», нужно выбрать из выпадающего списка название нужного поискового робота:
После того, как вы добавите свой сайт с протоколом HTTPS в поисковые системы, укажите основное зеркало, дождетесь переиндексации и правильно настроите 301-редирект, ваш переезд на протокол HTTPS можно будет считать завершенным. Для крупного сайта такой переезд может занять от нескольких недель, до нескольких месяцев. Все будет зависеть от того, как долго яндекс будет производить склейку зеркал.
Так же, вы можете назначить 301 редирект сразу после получения и установки с SSL-сертификата, но в этом случае вы рискуете тем, что многие страницы вашего сайта могут на время выпасть из поисковой выдачи.
Я надеюсь, что данная статья поможет вам правильно настроить редирект для HTTPS –протокола и осуществить переход на SSL-сертификат с наименьшими потерями. Если данная статья вам понравилась, делайте репост в социальные сети и подписывайтесь на мою рассылку. Желаю вам успешного переезда и до встречи в следующих статьях.
С уважением Юлия Гусарь
Перенаправление в htaccess через mod_rewrite
Если вам нужно что-то серьезное, то модуль Apache может сделать гораздо больше с точки зрения перенаправлений. Вот еще примеры:
Перенаправление со старой страницы на новую
RewriteRule ^/old-page/?$ /new-page/
1 | RewriteRule^old-page?$new-pageR=301,L |
Перенаправить все пути из старого домена в те же пути в новом домене
RewriteRule (.*) https://newdomain.com/$1
1 | RewriteRule(.*)https//newdomain.com/$1 |
Перенаправить все пути из старого домена на домашнюю страницу нового домена
RewriteRule (.*) https://newdomain.com/
1 | RewriteRule(.*)https//newdomain.com/ |
Перенаправить новый домен со строкой запроса
RewriteRule (.*) https://www.newdomain.com/%{REQUEST_URI}
1 | RewriteRule(.*)https//www.newdomain.com/%{REQUEST_URI} |
Перенаправить новый подкаталог домена со строкой запроса
RewriteCond %{REQUEST_URI} ^/subdirectory/(.*)
RewriteRule (.*) https://example.com/%1
1 |
RewriteCond%{REQUEST_URI}^subdirectory(.*)NC RewriteRule(.*)https//example.com/%1 |
Перенаправить URL с параметром запроса ID
RewriteCond %{QUERY_STRING} ID=(+)
RewriteRule ^/index\.php /newpath/?
1 |
RewriteCond%{QUERY_STRING}ID=(-9+)NC RewriteRule^index\.phpnewpath?R=301,L |
Перенаправить URL из подкаталога с параметром запроса ID
RewriteCond %{QUERY_STRING} ID=(+)
RewriteRule ^/subdirectory/index\.php /newpath/?
1 |
RewriteCond%{QUERY_STRING}ID=(-9+)NC RewriteRule^subdirectoryindex\.phpnewpath?R=301,L |
Удалить www из всех URL
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule (.*) https://example.com/$1
1 |
RewriteCond%{HTTP_HOST}^www\.example\.com$NC RewriteRule(.*)https//example.com/$1 |
Принудительный вывод www для всех URL
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) https://www.example.com/$1
1 |
RewriteCond%{HTTP_HOST}^example\.com$NC RewriteRule(.*)https//www.example.com/$1 |
301 редирект со страниц без слеша на страницы со слешем в конце URL
Причина делать такой редирект та же, что и в ситуации описанным выше, за исключением того, что редирект необходимо делать со страницы без слеша в конце URL на страницу со слешем в конце URL
RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*)$ /$1/
Пример работы редиректа:
Запрос (URL) | Редирект (URL) |
---|---|
http://mysite/page | http://mysite/page/ |
http://mysite/page.html | http://mysite/page.html |
http://mysite/page?value=1 | http://mysite/page/?value=1 |
http://mysite/page/ | без редиректа |
http://mysite/page/?value=1 | без редиректа |
Цепочки редиректов
Что это и почему это плохо?
Цепочка редиректов — это перенаправление не в один, а в больше, чем 2 шага. Специалисты спорят про их вредность: не сильно вредными называют до 5 переходов, так как поисковые роботы способны по ним перейти.
Для эффективного продвижения сайта цепочек не должно быть на сайте вообще. Цепочка редиректов может привести к циклическому редиректу, если некорректно его настроить. И это негативно скажется на поисковой выдаче. Причиной появления цепочек переходов и циклического перенаправления может быть заражение вирусами. Поисковые системы могут посчитать ваш сайт небезопасным для пользователей и препятствовать посещению.
Как найти?
Для поиска цепочек используйте чекеры или специальные сервисы. Самые популярные:
Здесь собрано много полезных инструментов для веб-мастера, в том числе и для проверки редиректов сайта. Сервис работает быстро и показывает всю цепочку редиректов, а не одно перенаправление.
Это инструмент для комплексного SEO-аудита, который позволяет также находить цепочки редиректов.
Можно смотреть цепочки редиректов, время и код ответа. Проверяет страницу на наличие ошибок сервера, доступность, успешность проведения запроса.
Позволяет увидеть всю цепочку перенаправлений. С его помощью можно убедиться, что редиректы работают правильно или на каком этапе в цепочке подхватываются cookies — они обозначаются круглым желтым значком. Сервис бесплатный.
Также для проверки можно применять расширения для браузеров:
Обнаружив цепочку перенаправлений, необходимо установить источник проблемы. Если вы сами настроили редиректы, вам следует их убрать или поменять на одиночные.
Как устранить?
Вам понадобится выяснить причину и понять, почему возникает перенаправление. Проверьте логи, действительно ли там есть эти перенаправления. Если не нашли, то поищите в основном коде подобные строки:
Если страница, на которой обнаружена перенаправление, имеет динамический адрес, который генерируется при переходе, возможно, скрипт сам генерирует и редиректы. Будьте бдительны при перезаписи URL адресов страниц, особенно используя шаблоны. Это распространенная причина цепочек и циклов перенаправления.
Важно! Стоит убрать с сайта внутренние ссылки на редиректы или заменить ссылками на доступные страницы. Чтобы увидеть входящие ссылки на такие URL, достаточно нажать комбинацию клавиш Shift+F1
Что такое редирект?
Это способ перенаправить посетителей веб-ресурса и поисковые системы на URL-адрес, отличный от того, который первоначально запрашивался. Самые используемые типы редиректов следующие.
301 Moved Permanently
301 редирект – это постоянная переадресация, которая передает приблизительно 90-99% веса ссылки. Такое перенаправление говорит, что страница была перенесена на новый адрес, а предыдущий URL-адрес должен считаться недействительным (устаревшим). Чаще всего используется для проставления редиректа с одной страницы на другую без потери веса ссылки.
302 Found (HTTP 1.1) / Moved Temporarily (HTTP 1.0)
302 редирект означает временное перенаправление. Такая переадресация практически не передает ссылочного веса, и в основном её не следует использовать. Сегодня сеть Интернет работает на основе нескольких протоколов. Один из них – HTTP протокол, с помощью которого определяется, как управлять URL-адресами. В двух вариантах данного стандарта код ответа сервера будет отличаться:
- HTTP 1.0: 302 с ответом сервера “Moved Temporarily” (Временно перемещен) – веб-документ временно перенесен на другой URL-адрес.
- HTTP 1.1: произошло изменение в ответе сервера на «Найдено» – веб-документ был найден.
307 Moved Temporarily (HTTP 1.1 Only)
307 редирект в протоколе HTTP 1.1 получил 302 перенаправление. Хотя основные поисковые роботы будут рассматривать его как альтернативу переадресации с кодом 302, но практически в любых ситуациях лучше применять 301 редирект. Исключить из правила можно только ситуации, когда контент перемещался на краткий период времени (к примеру, когда сайт закрывался на техническое обслуживание), а поисковики уже определили, что ваш сервер работает по протоколу HTTP 1.1. Трудно выяснить действительно ли поисковые роботы понимали, что ваш сервер имеет совместимость с этим стандартом. Поэтому для недолгосрочного перенесения контента проще пользоваться 302 редиректом.
Другие виды редиректов
В арсенале оптимизаторов есть и другие типы переадресаций: использование обновления мета-данных (Meta Refresh) или через JavaScript. Они запускаются на страницах, а не на сервере.
Но к таким переадресациям желательно прибегать лишь в крайних случаях, поскольку ними могут злоупотреблять спамеры, а также они могут использоваться на многочисленных дорвеях. Также стоит отметить, что при их использовании вес от ссылок передается в очень незначительном объеме, если это вообще происходит.
Другие настройки (CGI, Python, Node.js)
Директивы SSI (Server Side Includes) по умолчанию обрабатываются в файлах с расширением .shtml (например, index.shtml). Чтобы SSI обрабатывались и в других файлах, необходимо в файле .htaccess указать типы этих файлов:
Вместо «.ssi .html» укажите расширения файлов, в которых должны обрабатываться директивы SSI. Использовать в одном и том же файле PHP и SSI одновременно не рекомендуется.
Чтобы CGI/Perl-скрипты выполнялись в браузере, необходимо создать файл .htaccess и добавить в него строки:
Вместо «.cgi .pl» укажите список расширений, которые должны обрабатываться веб-сервером. Убедитесь, что у вас есть права на исполнение этих скриптов (например, 755). А в переменных PERL5LIB и LD_LIBRARY_PATH, которые указывают веб-серверу, откуда подгружать модули Perl, вместо login вставьте свой логин.
Проектам на языке Python необходим файл .htaccess с таким содержанием:
Вместо site.wsgi укажите входной файл вашего приложения.
Чтобы обрабатывать скрипты Node.js, укажите в .htaccess следующие директивы:
Замените example.com на основное имя вашего сайта, а login на логин вашего аккаунта.
Если вы не нашли ответа на свой вопрос в этом разделе, то вы всегда можете обратиться к нам за помощью через форму обратной связи в разделе «Поддержка» Панели управления.
LightTPD перенаправления
Для серверов, которые работают под управлением веб-сервера Lighttpd, можно сделать перенаправление, импортируя mod_redirect модуль и используя url.redirect:
server.modules = (
“mod_redirect”
)
$HTTP=~”^(www\.)?old-website.com$”{
url.redirect = (
“^/(.*)$” => “http://www.new-website.com/$1”,
)
}
PHP перенаправления
В PHP можно использовать функцию header:
header(‘Location: http://new-website.com’);
exit;
?>
Это должно быть установлено перед любой разметкой и контентом другого рода, однако есть одна небольшая сложность. Функция по умолчанию отправляет ответ 302, сообщая о том, что контент был временно перемещен. В нашем случае нужно постоянно перемещать файлы на новый сайт, так что стоит заменить перенаправление 302 на 301:
header(‘Location: http://www.new-website.com/’, true, 301);
exit();
?>
Параметр true заменит ранее установленный header и 301 изменяет код ответа на правильный.
Redirecting a single URL
Using Redirect in an .htaccess file enables you to redirect users from an old page to a new page without having to keep the old page. For example, if you use index.html as your index file and then later rename index.html to home.html, you could set up a redirect to send users from index.html to home.html. For example:
Redirect to a local site file
Redirect /path/to/old/file/old.html /path/to/new/file/new.html
Redirect to an external site file
Redirect /path/to/old/file/old.html https://www.example.com/new/file/new.html
The first path
The first path to the old file must be a local UNIX path, NOT the full path. So, if the .htaccess file is in the directory /example.com, you would not include /home/username/example.com in the local UNIX path. The first represents the example.com directory. If the old file was in that directory, you would follow the with the old file name.
The second path
The second path to the new file can be a local UNIX path, but can also be a full URL to link to a page on a different server or the same server.
Настройка 301 редиректа со страницы на страницу
Довольно часто возникает ситуация, когда страница сайта была удалена или вынуждена сменить свой URL. При обращении к её старому адресу, пользователь, само собой, увидит страницу 404 ошибки (не найдено).
Если станица маловажная, то не стоит и возиться, но если к ней часто обращались посетители сайта (и, возможно, у кого-то она сидит в закладках), если на неё ведут неподконтрольные вам внешние ссылки или, наоборот, подконтрольные внутренние, но в таких объёмах, что очень хочется их править, то настройка 301 редирект со старой страницы на новую станет для вас идеальным решением.
Также его можно использовать для борьбы с дублями страниц. В общем нужно писать книгу на тему «99 способов использование Redirect 301». Вот его синтаксис:
Redirect 301 /old-page.html http://new-domain.ru/new-page.html
Ну или так, результат будет один и тот же:
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
Поясняю: /old-page.html — относительный адрес старой страницы. Он может быть вложенным: /old-category/old-page.html, ну или таким: /old-category/old-page/ — тут никаких ограничений нет. Тоже самое относится к http://new-domain.ru/new-page.html (новой странице), с той лишь разницей, что путь тут абсолютный (не обязательно, чтобы это был новый домен — может быть просто новый внутренний адрес страницы).
Как сделать редирект
Ниже разберём несколько ситуаций, в которых владельцы сайтов чаще всего используют опцию редиректа.
C http на https
Из-за повсеместного переезда на https необходимость в этом редиректе возникает у многих. Для настройки через файл htaccess или PHP нужно использовать следующий код:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI)
C или на www
Этот редирект также очень важен для SEO, ведь с точки зрения поисковых систем страницы с префиксом www и без него являются разными и, соответственно, дублями.
Для выполнения настройки рекомендуется использовать специальные программы для генерации кодов редиректа, коих в Интернете существует множество, и сделать её через файл htacess.
Настройка перенаправления с одной страницы
Для выполнения этой операции действия нужно осуществлять по похожей схеме. Сначала сгенерировать код, после чего добавить его в файл htaccess или index.php. Если сайт работает на WordPress, можно воспользоваться плагинами, например, Simple 301 Redirects или Redirect.
Настройка редиректа при смене домена
В этом случае схема будет похожей, только в программах для генерации кода нужно получить постраничный редирект. Для этого потребуется ввести URL старого и нового сайта, а затем отметь нужные поля. Далее код также нужно добавить в файлhtacess или PHP.
Редирект папки
Можно задать и редирект для всей папки, то есть каталога. Это нужно, например, при создании подразделов, в том случае, если они отображаются в адресе страницы. Например, в раздел томаты на огородном сайте, имеющий ссылку примерного вида gardensampleblog.ru/tomaty/zheltye добавляется новый раздел «Томаты Черри», а ссылка получает следующий вид https://gardensampleblog.ru/cherry/zheltye.
Стандартный код для файла htacess в этом случае будет выглядеть следующим образом:
RedirectMatch 301 ^/tomaty/(.*)$ /cherry/$1
Есть ли какой-нибудь аналог .htaccess в nginx?
Ещё один довольно частый вопрос. В этом веб-сервера такой возможности нет. Однако, подобное обычно и не требуется. Дело в том, что nginx, как правило, устанавливается в качестве фронденда, т. е. принимает и обрабатывает все запросы, которые либо выполняет сам, либо перенаправляет на бэкенд, роль которого может выполнять Apache, который можно дополнительно конфигурировать с помощью .htaccess.
Поддержка сайта
С удовольствием создаю годный контент. Буду очень признателен, если вы поддержите мои усилия:
днём интернета
шоколадкой для работы мозга
коробочкой ароматного чая для бодрости
продлением хостинга на +1 месяц
2 070
не в сети 6 дней
Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1
Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы
RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ http://www.%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)\/$ http://www.%1/$1
Что такое 301 редирект?
301 редирект или 301 Permanent Redirect – это постоянная переадресация одного URL-адреса на другой. Само слово «редирект» дословно переводится с английского как «перенаправление».
Фактически это ответ сервера на запрос к нему, и ответ этот имеет код 301, говорящий о том, что адрес запроса был изменен навсегда. Результатом всех этих странных для новичка манипуляций становится то, что мы должны увидеть в браузере какой-то другой конечный адрес.
.htaccess
Если приложить максимум усилий — 301 редиректом возможно решить широкий круг проблем с оптимизацией, и глобально улучшить конверсию сайта. Соответственно, как сделать редирект на другой сайт нужно знать любому SEO специалисту и веб-мастеру.
Главное в этом деле — не забыться и не натворить лишнего, а также помнить о том, что перед каждым добавлением новых редиректов необходимо делать бекап файла .htaccess.
Зачем нужен 301 редирект и в каких случаях его используют?
301 редирект — весьма универсальный инструмент для любого оптимизатора. Он позволяет совершить перенос ссылочного наполнения одной страницы на другую. Чаще всего делают редирект на другой сайт при переезде на другой домен, соединении дублей интернет страниц или перенаправлении с «www» на «без www» и наоборот.
wwwбез wwwпо наследству
301 редирект способен передать:
- индекс цитирования;
- все ссылочное наполнение.
301 редирект не способен передать:
- возраст сайта;
- какие либо фильтры или санкции;
- присутствие в каталогах.
Ко всему прочему, возможен вариант, когда редирект выступает способом добавления в конце ссылки косой черты — слеша. То есть «http://site.com/news» при помощи редиректа изменяют на «http://site.com/news/».
Обобщая, 301 редирект необходим, как для пользователей, так и для поисковых роботов. Он позволяет и тем, и другим распознать, что появился новый сайт, домен или страница, а так же мгновенно переадресовывает их туда.
Кроме всего прочего 301 редирект достаточно часто используется в SEO, так как позволяет показать поисковым роботом, что страница переадресуется навсегда. Ну и, конечно, 301 редирект позволяет без труда перенести позиции старых страниц на новые.
Как настроить 301 редирект?
Решений этой задачи на самом деле множество, все зависит от того какими техническими характеристиками обладает хостинг вашего сайта. Сейчас мы приведем несколько наиболее простых вариантов, как сделать 301 редирект.
Запомните, что все операции производится в файле .htaccess или httpd.conf (для сервера Apache).
Вариант 301 редиректа для переадресации на другой домен:
Redirect 301 / http://www.site.com/index.htm
В данном примере все страницы сайта будут перенаправлены на другой.
301 редирект для одной страницы выглядит так:
Redirect 301 /site1/page1.htm http://www.site2.com/page2.htm
В качестве последнего примера приведем следующее:
Redirect permanent /test http://www.test.com/ Redirect permanent / http://enter.test.com/
Видно, что при попадании пользователя или поискового робота в директорию test он автоматически перенаправляется на «www.test.com», все остальные перейдут на «enter.test.com».
Можно, конечно, использовать готовый скрипт редиректа, которых полно в сети. Однако для успешности данной операции необходимо чтобы на хостинге были включены модули «mod_alias».
Как проверить работает ли 301 редирект?
Самые распространенные ошибки, при которых 301 редирект отказывается работать правильно – это наличие прочих редиректов, мешающих работе.
После того как вы настроили 301 редирект необходимо проверить его на работоспособность. Для этого нужно зайти не только на главную, но и прочие страницы сайта.
Переходя к практике, давайте рассмотрим как проверить 301 редирект.
Допустим, посетитель вводит в адресной строке браузера ссылку «http://primer.com/index.php» и нажимает «ввод». Браузер совершает HTTP-запрос и посылает его серверу, который возвращает HTTP-ответ.
При установленном редиректе, в поле «Location» будет прописан другой адрес страницы, например: «http://primer.com/surprize.php», куда и произойдет переадресация.
Существует много сервисов и плагинов позволяющих проверить работоспособность редиректа.
HttpFox
Плагин HttpFox для браузера Mozilla Firefox построчно фиксирует загрузку страницы, что позволяет отслеживать связки редиректов, а так же порядок и быстроту загрузки интернет страницы.
Надеемся, что данная статья помогла вам сделать редирект на новые страницы сайта без каких-либо проблем.
Удачи Вам!
Синтаксис и символы
- . — Точка означает любой символ.
- — перечень символов, совпадающих с буквами a, b, или с.
- — перечень символов, не входящих в диапазон. Условию соответствует любой символ, кроме a, b, с.
- * — предыдущий символ может повторяться 0 и более раз.
- * — найти символы из заданного набора идущие подряд.
- * — обратная операция.
- .* — замена любого набора символов. «.*» — найти все подстроки между кавычками.
- ^ — обознает начало строки (при использовании в начале выражения).
- $ — конец строки.
- \w — буква, цифра или подчёркивание _.
- \d — любая цифра.
- \D — любой символ, кроме цифр.
- — указание на любую цифру.
- — указание на любую букву от a до z с нижним регистром.
- — указание на любую букву от A до Z с верхним регистром.
- — любая буква от a до Z, регистр не важен.
- — тоже самое, только короче.
Флаги для доп. опций
- NC — NoCase отключает проверку регистра символов при срабатывании правила.
- R — Redirect останавливает изменение URL-адреса и возвращает результат. Самое популярное значение R=301, однако встречаются и другие для временных редиректов (302, MOVED TEMPORARY).
- L — Last останавливает создание URL-адреса и строка считается окончательной.
В каких случаях используется постоянный редирект 301
-
Смена доменного имени, перенос сайта. Необходимо произвести тотальную настройку переадресации со старого адреса на новый, чтобы все без исключения запросы к old_site.ru перенаправлялись на new_site.ru.
-
Изменение написания url определенных страниц в целях SEO-продвижения, смены CMS или по иным причинам. Требуется настроить редирект с site.ru/1hdkr5 на site.ru/page_adress.
-
Перенос разделов на субдомены. Необходимо сменить адрес www.site.ru/example на example.site.ru.
-
Для аккумуляции трафика с адресов, купленных в разных доменных зонах, на один приоритетный ресурс.
-
Исключение дублирующихся страниц из индекса.
-
Склейка зеркал сайта – вариантов сайта с идентичным контентом, но разным написанием адресов: site.ru, www.site.ru, https://site1.ru и т.д. В этом случае выбирается один приоритетный домен и на него настраивается редирект со всех остальных зеркал.
-
Удаление ранее существовавшей страницы. В этом случае пользователи обычно видят ошибку 404. Большое количество таких сообщений негативно воспринимается как пользователями, так и поисковиками.
-
Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.
Склейка доменных имен и переезд на новый сайт
Сценарии могут разворачиваться по-разному. Попробуем охватить как можно больше вариантов.
Переадресация на главную со страниц другого сайта. На сайте, с которого будет осуществляться переход, находим .htaccess и прописываем:
1-я строка – код – RеwrіtеСоnd %{RЕQUЕSТ_URI} (.*)
2-я строка – RеwrіtеRulе ^(.*)$ httр:// prіmеr-sаіtа.ru/
Здесь prіmеr-sаіtа.ru — это сайт, на который приводит переадресация.
Переадресация на главную страницу с второстепенных. Прописываем следующую комбинацию:
1-я строка – RеwrіtеЕngіnе Оn
2-я строка – RеwrіtеСоnd %{ЕNV:RЕDІRЕСТ_STАТUS} ^$
3-я строка – RеwrіtеRulе !(^$|.*\.(сss|jpg|gіf)) /
Переадресация на второстепенную страницу с главной. Прописываем комбинацию:
1-я строка – код – RеwrіtеЕngіnе Оn
2-я строка – RеwrіtеСоnd %{НТТР_НОSТ} ^www\. primer-saita\.ru$
3-я строка – RеwrіtеRulе ^$ httр://www. prіmеr-sаіtа.ru/vnutrеnyаyа-strаnіса/
Переадресация на основной домен с второстепенного (поддомена). Используем комбинацию:
1-я строка – команда – RеwrіtеСоnd %{НТТР_ТОSТ} ^теst.prіmеr-saita.ru$
2-я строка – RewriteRule ^(.*)$ http://primer-saita.ru%{REQUЕSТ_URI}
Переадресация на тождественные страницы стороннего сайта. Прописываем следующее:
1-я строка – RеwrіtеСоnd %{RЕQUЕSТ_URI} (.*)
2-я строка – RеwrіtеRulе ^(.*)$ httр:// рrіmеr-sаіtа.ru/$1
Изменение структуры адреса. Используем комбинацию:
1-я строка – код – RеwrieЕngіnе оn
2-я строка – RеwrіtеRulе ^cаtеgоrе/(+)/?$ $1
Когда не удается справиться с проблемой при помощи этого кода, можно обратиться к разработчикам сайта. Они учтут специфику CMS и внесут необходимые коррективы в синтаксис. В этом случае нужно также сформировать карту переадресаций.
Редирект для доменных имен на кириллице. Если у сайта домен в зоне .рф, действуют стандартные правила, но при этом кириллические символы нужно менять на соответствующие им коды:
1-я строка – RеwrіtеСоnd %{НТТР_НОSТ} ^xn-…\.xn—p1ai$
2-я строка – RеwrіtеRulе ^(.*)$ httр://www. prіmеr-sаіtа.ru/$1
Здесь .хn—p1аі — кодовое обозначение зоны .рф, а www.prіmеr-sаіta.ru — url устаревшей площадки.
Альтернативные методы переадресации
- Редирект 302. Применяется в случае временной переадресации с одного url на другой. При его использовании поисковая система индексирует все доступные версии сайта или страницы. Объединения ссылочного веса и внутренних метрик на приоритетном ресурсе не происходит.
- 307 Temporary Redirect рекомендуется применять в исключительных случаях. Например, при техническом обслуживании сайта, когда он недоступен некоторое время.
- Обновления Meta Refresh выполняют переадресацию не на уровне сервера, а непосредственно на сайте. Пользователь сталкивается с временной задержкой (обычно около пяти секунд), после чего для перехода на нужную страницу должен принудительно запустить определенную команду. Этот метод часто приводит к падению посетительского интереса и проседанию поисковых индексов.
- Редирект rel=«canonical». Позволяет сохранить доступ посетителям ресурса к контенту дублирующихся страниц. При этом для поисковиков наличие команды canonical на одной из страниц говорит о том, что только она подлежит индексации в поиске.
В большинстве случаев постоянная переадресация является более правильным решением, чем временная. На практике это объясняется просто. Предположим, сайт сменил доменную зону, а затем еще и обзавелся защищенным протоколом https. При настройке временной переадресации в индексе Яндекса и Google по одним и тем же запросам появились три версии сайта с пропорциональным проседанием позиций в выдаче. После настройки редиректа 301 на приоритетный url произошло склеивание дублей, робот вернул сайт в топ выдачи.
Не рекомендуется использовать постоянный редирект при временном переносе сайта или наличии серьезных проблем со старым доменным именем. Если адрес забанен или попал под поисковую фильтрацию, смена дислокации с применением переадресации не поможет избавиться от этих ограничений.