301 Redirect

Посмотрим варианты редиректа 301 через файл .htaccess (в корне сайта, включенный модуль mod_rewrite ). Данные варианты будут корректно работать только для простых сайтов на html (т.е. корректно будет редирект для всех страниц сайта), для сайтов на базе CMS надо смотреть документацию (в противном случае будет редирект со всех страниц на главную).

301 Redirect

301 редирект с www

Вариант 1 редиректа Вариант 2 редиректа Вариант 3 редиректа
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
</IfModule>

301 редирект на www

Вариант 1 редиректа Вариант 2 редиректа
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
</IfModule>
IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
</IfModule>

Для CMS 1C Bitrix редирект 301 (с www) будет выглядеть следующим образом (с использованием модулей PHP от данной CMS)

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* – [E=REMOTE_USER:%{HTTP:Authorization}]
#RewriteCond %{HTTP_HOST} ^www.site.ru [NC]
#RewriteRule ^(.*) http://site.ru/$1 [R=301,L]
</IfModule>

301 редирект для отдельных страниц сайта

Перенаправление всего сайта (включая подкаталоги) на новый сайт или страницу (не забывайте поставить последний “/”, если переадресация идет на сайт).

Redirect 301 / http://www.domain.ru/newIndex.html
где:

Redirect 301 – это инструкция, говорящая что страница перемещена навсегда. Если еще временные редиректы.

/ – означает, что переадресовываться будет все, с верхнего уровня сайта, включая подкаталоги, будет переадресовано наhttp://www.domain.ru/newIndex.html – новая страница или http://www.domain.ru/ сайт (последний “/” обязателен).

Чтобы переадресовать только страницу, сохранив PR старой страницы:

Redirect 301 /old/veryOld.html http://www.domain.ru/new/veryNew.html
где:

/old/veryOld.html – путь и имя старой страницы

http://www.domain.ru/new/veryNew.html – адрес новой страницы.

Аналогичный синтаксис для переадресации сайта:

RedirectPermanent / http://www.domain.ru/
Пример переадресации каталога:

RedirectPermanent /old-directory http://www.domain.ru/new-directory/
Например, зашедших по http://www.domain.ru/test (директория test) переадресуем на demo.domain.ru, остальных на login.domain.ru (порядок следования записей важен):

Redirect permanent /test http://demo.domain.ru/Redirect permanent / http://login.domain.ru/

ВАЖНО:

1. для CMS иногда проще (и удобнее) использовать для 301 редиректа плагин/модуль вместо файла .htaccess

2. Для WordPress все свои инструкции необходимо указывать вне модуля
# BEGIN WordPress
# END WordPress
Внутри этой конструкции сам движок WordPress пишет инструкции для редиректа


Вы можете сохранить ссылку на эту страницу себе на компьютер в виде htm файла