Недавно у меня появилась необходимость со страниц одного сайта сделать перенаправление на другой. Причем не всех страниц (что проще), а половины.
Если у вас возникла такая же или похожая ситуация, то вам поможет Redirect 301.
Редирект представляет собой перенаправление пользователей с одного веб-сайта на другой, которое происходит автоматически.
При этом не стоит путать 301 и 302 редирект. 301-ый сообщает поисковым системам, что старый адрес больше не используется, а 302-ой говорит о том, что URL временно не используется, и может когда-нибудь снова появиться.
Как сделать 301 Редирект
Если ваш сайт (как и большинство) работает на web-сервере Apache, то можно сделать переадресацию через коды скрипта файлов текстовой конфигурации: htaccess или httpd.conf. Чаще используется файл htaccess, переадресацию я делала с его помощью, и поэтому рассмотрим его подробнее.
- Итак, первым делом мы заходим в панель управления сайтом (cPanel). И идем в «Диспетчер файлов».
- Находим нужную нам папку с сайтом и ищем среди файлов .htaccess.
- Открываем его с помощью редактора исходного кода.
- Теперь в этот файл текстовой конфигурации нужно прописать следующее:
Options +FollowSymLinks
RewriteEngine on
Тем самым мы включим модули: Apache mod_rewrite и ReWriteEngine в модуле mod_rewrite. Также это можно сделать в php.ini.
Естественно, это всё можно сделать на локальном компьютере с помощью блокнота, а затем скопировать содержание в файл .htaccess.
Существует несколько типов сценариев переадресации. Рассмотрим их.
301 редирект с одной страницы на другую
Для этого нужно вставить следующую строчку в файл .htaccess. Внимание: вы прописываете свой сайт!
Redirect 301 /staraya-stranica.html http://domen.ru/novaya-stranica.html
Например, «перенесем» на этот сайт страницу «vsem-privet».
Redirect 301 /vsem-privet http://stacyblog.ru/vsem-privet
Если ваши страницы с префиксом, то прописываем его, если нет (как у меня), то нет.
Минус этого способа в том, что нужно прописывать каждую страницу, если их у вас много.
301 редирект всех файлов на другой адрес
Если вы не переименовывали директорию, то ставим код:
RedirectMatch 301 ^/staroe-nazvanie/ http://stacyblog.ru/staroe-nazvanie/
Если же переименовывали, то:
RedirectMatch 301 ^/staroe-nazvanie/ http://stacyblog.ru/novoe-nazvanie/
301 редирект с одного домена на другой
Когда переносим сайт с одного доменного имени на другое, то используем код:
RedirectMatch 301 ^(.*)$ http://stacyblog.ru
301 редирект с домена без www на домен с www
Если вы хотите перенести домен stacyblog.ru на www.stacyblog.ru, то нам нужно:
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Редирект 301 с www на без www
Для переноса www.stacyblog.ru на stacyblog.ru нужно:
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
Теперь вам осталось только протестировать сайт и проверить всё ли правильно работает.
Редирект 301 или 301 Permanent Redirect это правило, которое автоматически переадресовывает пользователя на другой адрес страницы. С его помощью вы можете склеить старые страницы с новыми или перенести сайт на другой домен, убрать многие дубли с сайта и многое другое. Крайне полезная вещь поэтому нужно научиться делать его правильно!