Редирект 301: правила перенаправления

Файл .htaccess относится к числу конфигурационных, он служит для настройки серверов, работающих через Apache. Внесение изменений в этот файл по определенным правилам помогает настроить работу сайта.

Например, директива 301 отвечает за автоматическое перенаправление пользователя с одной страницы на другую.

Важно: в процессе изменения файла .htaccess и последующего сохранения нужно сохранять кодировку UTF-8 без специальных символов BOM. Для этого лучше всего создавать файл и редактировать его не в стандартном «Блокноте», а в специальных программах-редакторах, например, Notepad++.

При сохранении файла в название следует добавить формат «.htaccess», убрав расширение .txt.

Настройка редиректа 301 позволяет ускорить процесс автоматического перевода пользователя на нужную страницу, если старая по каким-то причинам неактуальна.

Общие правила настройки редиректа 301

  •  В списке правил редиректа простые переадресации отдельных страниц должны стоять выше, чем «общие» для всего сайта, такие как редирект с www на https.
  •  редирект должен быть один. Перенаправление пользователя или поискового бота делается только один раз, без промежуточных страниц.
  •  в верхних строках файла должны быть прописаны специальные команды Options +FollowSymLinks и RewriteEngine On (до обозначения всех правил редиректа)
  •  правила RewriteRule выполняются при помощи строки RewriteCond
  •  задавать дополнительные опции для применяемых правил можно, перечисляя их в квадратных скобках через запятые, например, [R=301,L]
  •  на хостинге необходимо подключить модули mod_alias (они позволяют поддерживать правила Redirect, RedirectPermanent и RedirectMatch).

Редирект в htaccess с одной страницы на другую

Redirect [status] /начальная_страница http://конечная_страница_полный_адрес

Это правило регулирует прямой переход с одной страницы на другую.

В поле status необходимо вписать код 301.

В поле «начальная страница» указывается не полный адрес домена, а относительный (URL после слэша «/»).

Конечная страница при этом прописывается полностью: название URL и протокола.

Пример простого редиректа

Redirect 301 /page1.php https://website.ru/page2.php

301 редирект с домена без www на домен www с префиксом

RewriteCond %{HTTP_HOST} ^webweb\.ru$ [NC]

RewriteRule ^(.*)$ http://www.webweb.ru/$1 [R=301,L]

301 редирект с www на домен без www

RewriteCond %{HTTP_HOST} ^www.webweb\.ru$ [NC]

RewriteRule ^(.*)$ http://webweb.ru/$1 [R=301,L]

Редирект для HTTPS-версии сайта

RewriteCond %{SERVER_PORT} ^80$ [OR]

RewriteCond %{HTTP} =on

RewriteRule ^(.*)$ https://webweb.ru/$1 [R=301,L]

Редирект статических страниц

Redirect 301 /page1.php http://www.webweb.ru/page2.php

В новом адресе (страница переадресации) указывается URL полностью

301-редирект для страницы с GET параметрами

Со страниц, имеющих параметры GET, переадресация на новый адрес выглядит следующим образом:

http://www.webweb.ru/dir/index.php?IBLOCK_ID=2&SECTION_ID=222

RewriteCond %{QUERY_STRING} ^IBLOCK_ID=2&SECTION_ID=222$ [NC]

RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]

Переадресация со страниц без заданных параметров

Для cтраницы, на которой параметры не заданы, например http://www.webweb.ru/?111 переадресация выполняется с помощью следующего правила:

RewriteCond %{QUERY_STRING} ^111$ [NC]

RewriteRule ^$ /? [R=301,L]

301 редирект для отдельных файлов из папки

Допустим, что необходимо переадресовать только страницу

http://www.webweb.ru/dir/

и оставить на месте страницу http://www.webweb.ru/dir/index.php?IBLOCK_ID=2, которая должна находиться на своем месте.

Для этого применяется правило со специальным символом $.

RewriteRule ^dir/$ http://www.webweb.ru/new-dir/ [R=301,L]

Переадресация страниц в зоне РФ

Адреса кириллических доменов, например, в зоне РФ подчиняются тем же правилам, что и URL, записанные латиницей, при этом кириллические символы заменяются альтернативной кодировкой на латинице.

Переадресация с одного домена на другой

RewriteCond %{HTTP_HOST} ^old-webweb\.ru$ [NC]

RewriteRule ^(.*)$ http://www.new-webweb.ru/$1 [R=301,L]

301 редирект папок, оканчивающихся на слэш

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !\..{1,10}$

RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^(.*)$ http://www.webweb.ru/$1/ [L,R=301]

301 редирект папок, не имеющих слэша

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} ^(.+)/$

RewriteRule ^(.+)/$ http://www.webweb.ru/$1 [R=301,L]

Переадресация со старого адреса на папку с новым адресом

RewriteCond %{HTTP_HOST} ^web-web\.ru$ [NC]

RewriteRule ^(.*)$ http://www.webweb.ru/web-web/ [R=301,L]

Переадресация полной папки на указанный файл

RewriteRule ^dir(.*)$ /new-file.php [L,R=301]

Переадресация всей папки, за исключением указанного файла

RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301]

RewriteRule ^dir(.*)$ /all.php [L,R=301]

Замена расширения с html на php

RedirectMatch 301 (.*)\.html$ http://www.webweb.ru$1.php

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

RewriteCond %{HTTPS} "on"

RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]

Перенос домена на протокол HTTPS

RewriteCond %{SERVER_PORT} ^80$ [OR]

RewriteCond %{HTTP} =on

RewriteRule ^(.*)$ https://webweb.ru/$1 [R=301,L]

Путь к странице ошибки 404

ErrorDocument 404 /404-for-me.php

Важно: расположение строк в файле имеет значение. Все внесенные в файл правила выполняются в строгом соответствии с порядком их внесения.

То есть, чем выше строка, тем раньше выполняется правило, и наоборот.

301 редирект с автоматической генерацией кода

Самый простой способ не ошибиться с кодом редиректа - использовать автоматический генератор htaccess, например, Lenartools. Достаточно выбрать параметры перенаправления, например, со страницы с www на страницу без www, указать адрес, с которого требуется перенаправить поискового бота и пользователя, и нужный код будет сгенерирован автоматически, без мучительного мануального создания нужной комбинации.

Схема простая, понятная и не требующая даже простых навыков веб-мастеринга. 

Вам понравилась статья?

Поделитесь статьей с друзьями и коллегами

Комментарии

Добавить комментарий

Похожие статьи

Получить сборник 60 сервисов

по рекомендации наших пользователей
и подписку на инсайды раз в неделю.

Подпишитесь на нас в соцсетях

Узнавайте о новостях и событиях там, где вам удобно