301 редирект в htaccess, php, nginx

301 редирект используется в первую очередь, когда страница или группа страниц сменила свой адрес. Такое происходит в тех случаях, когда изменяется структура сайта, при смене образующей URL-страницы и т.д. Об этом многие владельцы сайтов не задумываются и поэтому возникают дубли страниц, что может привести к потере позиций либо наложению фильтров от Яндекс и Google.

Помимо этого редирект 301 применяют для склейки зеркал (например, домен с www и без www). Это может способствовать повышению параметров тИЦ и PR, так как для поисковиков адрес сайта с "www" и без "www" - разные URL. Если владелец решил изменить адрес проекта в связи с изменением товаров и услуг, предоставляемых ранее, или решил зарегистрировать более короткий и красивый домен,- то здесь очень важно, чтобы посетители при обращении к адресу старого домена попадали на ту же страницу, что и ранее, но только уже расположенную на новом домене.

Redirect 301 в .htaccess

301 редирект в htaccess - это самый простой и популярный способ установки редиректов. Из преимуществ этого метода можно отметить тот факт, что он срабатывает на сервере до запуска различных скриптов ресурса и не создает дополнительную нагрузку. Вот несколько самых распространенных примеров (замените "raskruty.ru" на адрес вашего сайта):

301 редирект в .htaccess для домена с www. на домен без www.

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.raskruty\.ru$ [NC]
RewriteRule ^(.*)$ https://raskruty.ru/$1 [R=301,L]

Обратный редирект с домена без www. на домен с www.

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^raskruty\.ru$ [NC]
RewriteRule ^(.*)$ /$1 [R=301,L]

Редирект 301 адреса c /index.php на корень сайта /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]

Еще один пример:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /index\.php
RewriteRule .* / [R=301,L]

Тоже самое можно проделать и для /index.html, просто замените в примере php на html.

Редирект в nginx:

301 редирект в nginx для домена с www. на домен без www.

server {
server_name www.raskruty.ru;
rewrite ^ https://raskruty.ru$request_uri? permanent;
}
server {
server_name raskruty.ru;
.... основной конфиг ....
}

Еще пример (нежелательный):

if ($host = 'www.raskruty.ru' ) {
rewrite ^/(.*)$ https://raskruty.ru/$1 permanent;
}

Редирект PHP:

<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: /optimizaciya-saita/301-redirect.html”);
exit();
?>

Советы и рекомендации при работе с редиректами

Редирект 301 часто используют как ответ сервера, заменяя этим действием традиционную ошибку 404 – Not Found. Если говорить проще, то посетитель при переходе по неправильной ссылке, либо на удаленную страницу, столкнется не с сообщением типа: «Извините, но такая страница удалена», а будет перенаправлен на другую действующую страницу. Хотя такой момент является спорным среди специалистов и поэтому тут присутствует несколько вариантов решений.

Во-первых, существует две категории ошибок 404: первая – традиционная (классическая), когда страница действительно отсутствует, а вторая – когда такая ошибка возникает из-за «кривых» внешних ссылок. Поэтому в первом случает лучше оставить все как есть, т. е. «ошибку 404». Но во втором случае лучше позаботиться о редиректе на правильный URL-адрес, если присутствует возможность восстановить его из битой ссылки либо перенаправить пользователя на главную страницу.

В том случае, когда нужно переработать большой проект или сложную структуру сайта, часто владелец сталкивается с множественными редиректами либо длинными цепочками. Такое означает, что редирект осуществляется не в один шаг, а в несколько – это отрицательная ситуация и ее необходимо избегать. Если поисковый бот перейдет по такой ссылке и получит несколько перенаправлений подряд, станет думать, что его хотят обмануть и прекратит свои действия, да и вообще перестанет индексировать такие ссылки.

По возможности, нужно стремиться не допускать редиректов внутри ресурса. К примеру, если ссылки, ведущие с других ресурсов на сайт, исправить не удается и тут редирект обязателен, то битые внутренние ссылки необходимо исправлять. Хотя это может и не отразиться на ранжировании или индексации, но лучше подстраховаться и избежать таких спорных вопросов.

При составлении в .htaccess правил редиректов нужно исключать реальные адреса файлов и директорий на сервере и следить за выборкой.

Автор: stingervx888
Источник: raskruty.ru
При перепечатке, ссылка на источник обязательна
Разделы статей
Новости
Популярные статьи