Как сделать 301 редирект сайта в .htaccess

Как сделать 301 редирект сайта в .htaccess

0 1236

Редирект (от англ. redirect) — это перенаправление посетителя вашего сайта с одной страницы на другую, или же переадресация от одного домена к другому. Что это значит? Человек набрав в браузерной строке адрес вашего сайта, и при переходе на него, его переадресовывает на другой сайт. Переадресация будет работать не только для простых посетителей, но и для поисковых роботов. Все заходящие по одному адресу, будут перенаправлены по другому.

Для чего же нужен редирект? Он может понадобиться если вы сменили домен, который уже знают посетители и, чтобы не терять их, будет осуществляться перенаправление на другой сайт. Так же редирект можно использовать для поднятия PR и ТИЦ другого домена. Например, можно приобрести домены с высоким ТИЦ и PR (перед приобретением нужно обязательно проверить их). То есть при редиректе с одного домена на другой, свойства старого домена передаются новому. Таким образом вы сможете поднять ТИЦ своего сайта.

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

Редирект простой.

301 редирект можно сделать несколькими способами, но самый надежный — сделать его через файл .htaccess. Напомню вам где находится этот файл. Заходим на сервер, где расположен ваш сайт, заходим в корневую директорию (/public_html) — здесь он и расположен. Скачиваем с сервера файл .htaccess к себе на компьютер, и начинаем делать в нём поправки для успешного редиректа.

Для 301 редиректа с одного сайта на другой, прописываем в файле .htaccess того сайта, с которого должно осуществляться перенаправление посетителей такой код:

Redirect 301 / http://site.com

При таких адресах страниц вашего сайта:

http://site.ru/ссылка/index.php

для редиректа вставляем такой код:

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

Если требуется редирект только для одной страницы, вставляем такой код:

Redirect 301 /старая страница.html http://site.com/новая страница.html

или

Redirect permanent /старая страница.html http://site.com/новая страница.com/

Если требуется редирект нескольких страниц, то для каждой страницы добавляем свой код.

301 редирект с использованием модуля mod_rewrite и директивы RewriteRule.

Первое, что надо проверить, подключен ли модуль mod_rewrite в файле httpd.conf, и включена ли опция FollowSymLinks.

Для перенаправления домена с www на на домен без www, вставляем такой код:

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

Для перенаправления домена без www на на домен с www, вставляем такой код:

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

Для 301 редиректа со старого домена на новый, вставляем такой код:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

Для 301 редиректа через PHP, клиенту передаётся заголовок:

HTTP/1.1 301 Moved Permanently
Location: http://www.newdomain.ru/newdir/newpage.htm

Для этого должен быть прописан такой код:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.sitenew.ru/newdir/newpage.htm");
exit();
?>

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