HTACCESS — настраиваем 301 редирект

Быстрая навигация по этой странице:

htaccess 301 редирект

Вместо вступления

Часто, набирая какой — нибудь адрес в поисковой системе, пользователь натыкается на сообщение, что такого адреса или страницы не существует. Для недопущения таких случаев создателями web-сайтов и URL – адресов используется htaccess 301 редирект, т.е. перенаправление в директиве htaccess (не путать с редиректом на PHP).

Редирект htaccess дается в помощь веб-мастеру для того, чтобы после создания нового URL-адреса поисковик интернета не только быстро нашел запрашиваемую страницу, но и для идентификации старого URL – адреса с новым.

htaccess — файл для важной конфигурации веб-серверов. Позволяет задавать наибольшее количество уточняющих параметров и разрешений для работоспособности веб-сервера у разных пользователей интернета. А также на других папках пользователей интернета, таких, как управление удаленным доступом к каталогам, переназначение видов файлов и т.п., но, не допуская доступа к главному файлу конфигурации, т.е. не мешая работоспособности всего сервиса целиком.

Основные выражения для записей кодов

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

  • $ — ограничение справа;
  • . — любой символ;
  • * — 0 и более символов;
  • [] — диапазон значений;
  • () — переменная;
  • + — 1 и более символов;
  • \ — экранирование;
  • ^ — ограничение слева.

Приступаем к работе

Для настройки перенаправления через файл .htaccess, находившийся в корневой директории, используется запись:

RewriteEngine On

Для того чтобы настроить редирект на другой сайт, необходимо прописать следующие коды:

использовать домен без www (и наоборот).

Это перенаправление для целого сайта, но можно создать редирект для какой-то одной страницы:

Перенаправление 301/старый_адрес.html http://site.com/новый_адрес.html

Если страница не имеет окончание типа .html, тогда код будет прописан в виде RedirectMatch301.

Если перенаправление нужно создать с адреса следующего типа: index.php?option=com_contact&Itemid=29 на URL такого вида: http://www.site.com/kontakti,

код редиректа будет выглядеть таким образом:

RewriteCond %{QUERY_STRING} ^option=com_contact&Itemid=29$ [NC] RewriteRule ^index\.php$ http://www.site.com/kontakti? [R=301,L]

Редирект на другой сайт будет работать по отношению только к единственному конкретному адресу. Можно задать сразу несколько разных адресов. Также можно создать перенаправление и с помощью записи директив для модуля типа mod_rewrite. В этом случае переадресация с домена с www на адрес без www будет иметь вид:

Полезный совет

Так как память у нас не резиновая и держать все особенности настройки и весь синтаксис в ней очень трудно, то лучше всегда иметь в доступности файл-документ, в котором прописан редирект 301 со всей официальной документацией по теме. И, после настройки перенаправления, не забывайте проверять внутренние и главную страницы, как они работают. Реакция поисковых систем во многом зависит от самого сайта и его качества: если он трастовый, то весь процесс может занять не менее недели, идаже превысить один месяц.

Если Вы нашли для себя что-то полезное на этой странице, пожалуйста, нажмите на одну из этих кнопок:
Комментарии
  1. Xeyz

    А как сделать редирект вида А или Б на С.
    Т.е. как прописать правильно выражение со знаком |

  2. Игорь

    Нужен редирект со старой ссылки на новую. Старая ссылка выглядела так: «название_сайта.ру/название_категории», теперь создал подкатегорию и ссылка поменяла имя: «название_сайта.ру/название_категории/название_подкатегории». Заранее спасибо.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>