301 редирект (301 Permanent Redirect) — это код ответа сервера, означающий что запрошенная страница навсегда перемещена и располагается теперь по новому адресу, который также передается в HTTP-заголовке ответа. Браузеры автоматически реагируют на эту директиву и для конечного пользователя переход происходит практически незаметно (меняется только URL в адресной строке браузера). Метод 301 редиректа широко используется в SEO для переноса веса со старых страниц на новые и для удержания пользователей на сайте.
В сети есть множество информации о 301 редиректе (ссылки на полезности ищите в конце статьи), но нужные рецепты частично устарели, недостаточно полны или раскиданы по десяткам страниц. Работая в SEO-компании, я часто сталкиваюсь с отсутствием или нехваткой знаний для простановки редиректов, как среди сеошников, так и среди программистов. Поэтому я начну цикл статей-рецептов, в которых все объясню максимально доступно.
Эта статья будет своего рода содержанием. В ней будет дополняемый список ссылок на все рецепты с 301 редиректом. Итак, сначала список, затем общие детали установки редиректов.
В общем случае есть 2 основных способа реализации редиректов:
Часто этот вопрос обходится стороной, несмотря на то, что файл конфигурации .htaccess может быть очень большим. Человеку, который видит его в первый раз, совершенно непонятно куда вставить редирект из рецепта так, чтобы он заработал.
Для работы редиректов через mod_rewrite в файле .htaccess должны быть следующие строки:
apacheOptions +FollowSymLinks
RewriteEngine On
Первая включает следование по символическим ссылкам.
Вторая — включает использование движка rewrite для редиректов.
Чаще всего эти строки уже будут в файле, найдите их и вставляйте редирект после них.
Если таких строк нет, то вставьте их самостоятельно в начало файла.
Далее, у CMS поддерживающих ЧПУ (человеко-понятные урлы), в .htaccess будет подобная конструкция:
apache# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Так вот, редирект нужно вставлять до нее, поскольку она собирает все необработанные запросы и отдает их на обработку входному файлу CMS (чаще всего это index.php). А указанный в квадратных скобках флаг L, дает команду прервать обработку всех последующих правил редиректа.
Таким образом, правило, вставленное после такой конструкции, не будет работать.
Если не хотите получить сайт, который отдает ошибку 500 на любой странице — выполняйте следующие правила:
Полезные ссылки: