Ваш город
Пн-Сб | 09:00-18:00
ГлавнаяБлогВнутренняя оптимизация301 редирект (переадресация) через .htaccess — примеры и правила настройки

301 редирект (переадресация) через .htaccess — примеры и правила настройки

301 редирект (переадресация) через .htaccess — примеры и правила настройки

О 301 редиректе говорилось и писалось очень много. Но тем не менее, до сих пор многие сталкиваются с проблемами при склейке зеркал с www и без него, при переходе на новый домен, изменении адреса страницы или ее переносе и так далее. Это статья позволит вам сохранить свой трафик и позиции в выдаче, перенаправив его на новые страницы.

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

301 редирект – это код ответа сервера, сообщающий, что искомая страница или ресурсы перемещены и получили другой URL. В чем важность этого кода состояния для SEO? Благодаря ему можно исключить старый URL из поисковой выдачи и заменить его новым, при этом, не теряя позиции и вес страницы.

Существует несколько способов настройки 301 rewriterule:

  • Посредством PHP и HTML;
  • С помощью предназначенных для этого плагинов для CMS;
  • Скриптами;
  • Файлами htaccess (на сервере Apache) или web.config (на IIS).

Самым надежным является как раз последний вариант, поэтому как настроить редирект 301 для htaccess, разберем подробнее в нашей статье.

Настройка 301 для htaccess

Прежде всего рассмотрим, что такое .htaccess. Это конфигурационный файл сервера Apache, но в отличие от главного файла конфига httpd.conf, в файле .htaccess директивы распространяются исключительно на тот каталог, в котором он размещается и на вложенные подкаталоги.
В случае, если в корне файл .htaccess отсутствует, его нужно создать, а затем загрузить на сервер через FTP-клиент.

htaccess 301 редирект с домена на домен

В случае, если необходимо настроить 301 rewriterule между двумя доменами (переезд сайта с одного домена на другой), можно использовать директивы модуля mod_alias. В файле в .htaccess следует прописать директиву

Redirect permanent / https://newsite.com/
или
Redirect 301 / https://newsite.com/

Где newsite.com – это адрес нового домена.

301 редирект страницы (постраничный rewriterule 301)

Переадресацию можно настроить не только с одного домена на другой, но также и для страниц. Для настройки 301 редиректа страницы page1.html на другую page2.html делаем так:
Redirect 301 /page1.html https://site.ru/page2.htm

301 Редирект с главной страницы сайта на страницу каталога /top:
Redirect 301 / https://site.com/top

Rewriterule 301 с каталога /top на главную страницу сайта:
Redirect 301 /top https://site.com

Нужно продвинуть молодой сайт?
  • Выведем в топ с нуля — без накруток и санкций

Склейка зеркал сайта

Одно из основных предназначений 301 редиректа – это склейка зеркал сайта (вариантов одного сайта с одинаковым контентом, но разными адресами). Пример зеркала для сайта www.site.com – это site.com. Проблема в том, что поисковые роботы негативно относятся к зеркалами, считая их дублями, поэтому рекомендуется выбрать один основной адрес (так называемое основное зеркало), а с остальных зеркал настроить на него 301 переадресацию. Чтобы произвести склейку зеркал, используется модуль mod_rewrite.

К примеру, для того, чтобы настроить rewriterule 301 с www-домена на домен без www, то необходимо прописать следующие строки:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.myrsite.ru$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]

Редирект 301 без www на www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ mysite.ru
RewriteRule (.*) http://www.myrsite.ru/$1 [R=301,L]

Редирект всех страниц сайта при переезде с http на https:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Еще один вариант:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

mysite.ru – это адрес вашего сайта.

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

Еще одна сфера, где можно использовать 301 редирект – устранение дублей страниц на сайте.

Поисковые системы считают адреса https://www.myrsite.ru/ и https://www.myrsite.ru совершенно разными. Поэтому вам следует определить, использовать слеш или нет.

Убирается слеш в конце адреса достаточно просто – нужно в файле .htaccess прописать следующее правило:
RewriteEngine On
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

Добавить слеш можно таким образом:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Для замены всех файлов с расширением .htm на файлы с расширением .html, необходимо прописать такие строки:
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.htm$ $1.html [R=permanent]

Важно: при прописывании сразу нескольких директив, строку «RewriteEngine on» нужно указывать ТОЛЬКО один раз – она «включает» модуль mod_rewrite.

В том случае, если файла .htaccess нет и он создается с нуля, то все команды следует указывать внутри следующих строк:
<IfModule mod_rewrite.c>

</IfModule>

Например, вот так

Настройка 301 редиректа в web.config

Способ настройки rewriterule 301 в .htaccess работает только для веб-серверов Apache. Для серверов IIS настройка переадресации производится в XML-файле web.config, где находятся все основные настройки сервера.

Для настройки переадресации с одной веб-страницы на другую, в файле web.config необходимо изменить следующий сегмент кода:
<?xml version=»1.0″ encoding=»UTF-8″?>
<configuration>
<location path=»test.html»>
<system.webServer>
<httpRedirect enabled=»true» destination=»http://mysite.ru/page2.html» httpResponseStatus=»Permanent» />
</system.webServer>
</location>
</configuration>

Где mysite.ru/page.html – одна страница, а mysite.ru/page2.html – другая.

Редирект 301 с www на домен без www настраивается так:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name=»Imported Rule 1″ stopProcessing=»true»>
<match url=»^(.*)$» ignoreCase=»false» />
<conditions logicalGrouping=»MatchAll»>
<add input=»{HTTP_HOST}» pattern=»^www\.(.+)$» />
</conditions>
<action type=»Redirect» url=»http://{C:1}/{R:1}» redirectType=»Permanent» />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Комплексный интернет-маркетинг на аутсорсе
  • Берём на себя весь цикл продвижения вашего бизнеса

Альтернативные варианты настройки

Если из-за каких то ограничений на хостинге у вас нет возможности создать или отредактировать конфигурационные файлы, rewriterule 301 можно настроить посредством PHP
<?php
header(‘HTTP/1.1 301 Moved Permanently’);
header(‘Location: https://newsite.ru/’);
?>

Таким образом, переадресация ответа 301 происходит принудительным образом, направляя пользователя на новую страницу https://newsite.ru/.
Для небольших сайтов на две-пять страниц, 301 перенаправление легко настроить даже с помощью HTML:
<meta http-equiv=»refresh» content=»0; url=https://newsite.ru»>

При изменении 0 вы указываете время (в секундах) на переадресацию, но при этом реализация rewriterule 301 происходит со стороны клиента, а не сервера (без передачи заголовка 301).

JavaScript также позволяет настроить rewriterule 301 без передачи заголовка 301
<script type=»text/javascript»>
window.location.replace(«newsite.ru»);
</script>

Этот способ не сработает, если у клиент отключена поддержка JavaScript.

В самом «ленивом» случае можно воспользоваться одним из многочисленных онлайн-сервисов – генераторов 301 redirect, выдающего по запросу уже готовые фрагменты кода. Все, что вам остается – просто указать с какой и на какую страницу или адрес будет происходить перенаправление пользователя.

Настройка 301 redirect без опыта в программировании

Все описанные выше способы работают, если у вас есть опыт в программировании. Но если его нет? Тогда рекомендует обратиться к программисту, воспользоваться услугами веб-форвадинга от самого хостинг-провайдера или использовать для настройки встроенные инструменты самой CMS.

Плагины для WordPress

Если у вас сайт на WordPress, то можно использовать один из плагинов:

  • Redirection. Это наиболее распространенный и популярный плагин, который также позволяет собирать статистику переадресаций, отслеживать ошибки 404 и поддерживать регулярные выражения.
  • Safe Redirect Manager. Достаточно простой в использовании плагин, не требующий особых навыков и не перегружающий сайт.
  • Quick Page/Post Redirect Plugin. Также очень простой плагин, позволяющий добавлять атрибут hofollow к ссылкам. Но в отличие от других плагинов, он здесь отсутствует реализация поддержки регулярных выражений.

Итог

Наиболее эффективный способ настройки переадресации – 301 редирект в htaccess. Но этот способ работает только в том случае, если вы используете веб-сервер Apache. Для серверов IIS придется настраивать файл web.config, а если еще и нужно соблюдать определенные условия, то лучше использовать редирект 301 php, но этот способ требует навыков программирования.

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

Содержание
Что такое 301 редирект?Настройка 301 для htaccesshtaccess 301 редирект с домена на домен301 редирект страницы (постраничный rewriterule 301)Склейка зеркал сайтаУстранение дублейНастройка 301 редиректа в web.configАльтернативные варианты настройкиНастройка 301 redirect без опыта в программированииПлагины для WordPressИтог
Мультиязычный сайт
Материал по теме

Мультиязычный сайт

Как перенести сайт на другой хостинг
Материал по теме

Как перенести сайт на другой хостинг

SEO на этапе разработки или после?
Материал по теме

SEO на этапе разработки или после?

Кейсы продвижения

Лучшие выбирают лучших
В 3,4 раза увеличили заявки для оптового поставщика химии в Яндекс.Директ
Контекстная реклама

В 3,4 раза увеличили заявки для оптового поставщика химии в Яндекс.Директ

  • на 236% рост количества заявок
  • на 45% снижение стоимости заявки
  • с 1% до 7% рост конверсии сайта

Читайте также по теме

У нас в телеграме много полезной информации, подписывайтесь! Мы часто обновляем посты о курсах, анонсах статей и кейсов — за нами удобно следить и быть в курсе апдейтов ПС, акций и новостей по SEO.

Оставить заявку

Получите консультацию и персональное предложение по развитию вашего бизнеса