Redirect 301 Permanent

Что такое редирект 301?

Редирект – перенаправление с одной страницы на другую. Редирект, помогает сохранить позиции сайта в поисковых системах, и сохранить PR (page rank). Если планируется по каким-то причинам изменение домена сайта, то ни в коем случае не следует сразу бросать старый домен. Нужно иметь ввиду, что посетители продолжают по нему заходить на сайт, и поэтому целесообразно их перенаправить на новый сайт.

С HTTP на HTTPS

Если следуя настоятельной рекомендации и запугиванию Google, был подключен HTTPS, то необходим редирект с обычного http://. Это можно сделать так:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Устранение дублей

Собственно говоря, работа с редиректом классифицируется как внутренний этап SEO, или On-Site SEO, при этом убираются дубли страниц, наличие которых препятствует продвижению сайта. Если существуют страницы с одинаковым содержанием, их лучше «склеить». Это осуществляется с помощью работы с файлом .htaccess.

C WWW не не-WWW и на оборот

С точки зрения SEO, не страница не должна быть доступна по нескольким адресам. Так вот www.site.com и просто site.com – это разные адреса одного сайта. Поисковики это не любят. Что бы внять рекомендациям SEO, нужно удалить дубль. Сделать это можно таким образом:

С www на не-www

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

С не-www на www

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

Joomla редиректы

Для Joomla, в которой может быть масса дублей, можно попробовать такой метод:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^option=com_content&view=frontpage$
RewriteRule ^(index\.php)?$ http://вашсайт.com/? [R=301,L]

Вот этот длинный хвост часто появляется как дубль главной страницы в Joomal:

option=com_content&view=frontpage

Его полный вид таков:

http://site.com/index.php/?option=com_content&view=frontpage

По такому принципу можно перенаправлять все хвостатые адреса, если в Joomla включили опцию seo по наитию свыше. Например:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^option=com_content&view=article&id=103&Itemid=24$
RewriteRule ^(index\.php)?$ http://site.com/new_page? [R=301,L]

Если нужно перенаправить с http://site.com/index.php (часто поисковики выдают этот вариант вместо желаемого, если сайт на Joomla или еще какой-то CMS) на site.com, то можно сделать так:

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

Opencart

В Opencart главная страница имеет вид таков:

www.site.com/index.php/?route=common/home

Это дело вообще нужно решать самим разработчикам OpenCart, но видимо в этом хвосте есть некий знак для посвященных в тайны Вселенной. Так что решать задачу вам. Можно просто найти и заменить в header.tpl и footer.tpl (папка templates/common)
<?php echo $home; ?>

на

<?php echo $base; ?>

А можно сделать редирект на www.site.com в .htaccess так:

RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteRule ^index\.php$ http://site.com/? [R=301,L]

С категории на категорию с чпу адресом, если вдруг решили поменять адреса страниц:

Первоначальный урл был длинный и уродливый типа www.site.com/index.php?path=83_94_113&route=product/category. Придаём ему человеко-понятный вид:

RewriteCond %{QUERY_STRING} ^path=83_94_113&route=product/category$
RewriteRule ^index\.php$ http://site.com/new-category? [R=301,L]

Вот еще один способ редиректа динамических адресов, в частности у категорий Textpattern, которые привязаны к некой секции, и имеют такой вид:

www.site.com/katalog?c=okna-pvkh

После долгих проб и ошибок был найден такой вариант – в примере редирект на главную:

RewriteCond %{QUERY_STRING} ^c=okna-pvkh$ [NC]
RewriteRule katalog http://site.com/? [R=301,L]

Редирект со старого на новый домен

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

old-site.com

он моментально попадет на

new-site.com

Самый простой способ это сделать в файле .htaccess таков –

Redirect 301 http://старый-сайт.com http://новый-сайт.com
Redirect Permament  http://старый-сайт.com http://новый-сайт.com

Редирект с несуществующих страниц.

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

Разумеется, сделать редирект с каждой страницы трудоемкий процесс, однако если сайт имеет несколько разделов, которые отображаются в адресах, то можно свести к минимуму несуществующие страницы. Таким образом, посетитель вообще не заметит никаких неудобств на сайте, а поисковики не понизят статус сайта.

Самый простой делается как и при редиректе с домена на домен:

Redirect 301 /oldpage.html  http://site.com/newpage.html
Redirect Permament  /oldpage.html  http://site.com/newpage.html

Если не сработал вышеуказанный способ, попробовать стоит такой

RewriteRule ^oldpage.html  http://site.com/newpage.html [L,R=301]

Если нужен редирект с любого адреса включающего урл родительской категории, есть такой вариант:

RewriteRule ^old_caregory http://site.com/new_category [L,R=301] 

Таким образом любая страница такого вида www.site.com/old_caregory/page.html будет перенаправлять посетителя на тот указанный адрес. В этом примере – new_category.

Редирект осуществляется с помощью ряда методов –

  • Файл .htaccess
  • PHP
  • JavaScript

О чем более подробно речь пойдет в последующих статьях. Эта статья редактируется и дополняется постоянно новыми примерами, коих в природе много. Увы, не всегда правило Redirect 301 /старая_страница http://site.com/новая_страница работает безотказно.