Как сделать редирект 301 Метод .htaccess

htaccess редиректКогда мы советуем применения редиректа(переадресация)  301 для оптимизации и поддержки определенного URL в поисковых системах, то обязательно встречается вопрос: «Как вы делаете редирект 301?»

До тех пор, пока у вас есть доступ к директории своего сайта на сервере, такие действия не составят особого труда. Будем считать, что ваш сайт работает на веб-сервере Apache (как и большинство сайтов), потому давайте немного поговорим о технической части вопроса внедрения переадресации 301 в Apache.

Сначала немного теории

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

В отличие от используемой по умолчанию временной переадресации 302 HTTP, 301 показывает, что старый, привязанный URL больше не используется (тогда, как 302 указывает, что старый временно не используется, но в будущем он должен снова появиться).

Разница между 301 и 302 особенно важна при сканировании сайта поисковыми системами. Когда сканер поисковика обнаруживает ссылку на ваш сайт, адрес которого постоянно настроен на переадресацию, то веб-сервер взаимодействует со статусом кода 301, а затем переадресовывает пользователя на новый URL. Поисковые системы не только принимают перенаправление на новый URL, но и переносят значение показателей страницы со старого URL на новую страницу редиректа (это вторая особенность такого процесса, которая очень важна для SEO оптимизации, которую нельзя выполнить, используя 302).

Во всех примерах указан домен данного сайта, не забудьте заменить его на адрес вашего сайта.

Сравнение редирект 301 и канонический rel=”canonical”

Например:

<link rel="canonical" href="http://www.web-profy.com/page.html" />

Смысл тега rel=canonical в том, чтобы сообщить поисковой машине единый целый адрес контента страницы. Это очень полезно, когда сайт использует динамические переменные атрибутов для URL-ов. Динамические URL могут способствовать индексации нескольких версий URL для каждой отдельной страницы, что выражается в дублировании контента (а это поисковики просто ненавидят!)

Хотя использование тега с атрибутом rel=canonical и полезно для страницы сайта, но это не является надежной заменой переадресации 301. Здесь есть несколько причин:

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

Все это говорит нам, что использование тэгов rel=canonical может оказаться полезным при переадресации страниц блога (конечно, если у вас есть доступ к его коду и, чтобы вставить в страницы необходимые модульные теги). В конце концов, использование 301 может означать потерю изначальных страничек и связанных с ними комментариями, социальных связей, у которых есть свои собственные значения в SEO.

Мы рекомендуем рассмотреть использование тега rel=canonical, чтобы минимизировать дублирование индексированного контента. Независимо от стандартных причин переназначения функций и значений поискового индекса старого URL на новый, мы рекомендуем придерживаться использования проверенного способа – переадресации 301.

Как сделать редирект 301 в .htaccess?

На веб-сервере Apache редирект 301 можно выполнить через коды скрипта в одном из двух файлов с текстовой конфигурацией: или .htaccess (для директорий, представляющих отдельные сайты на сервере), или httpd.conf (в корневом каталоге инсталлятора Apache). Обычно используется способ с изменением конфигурации .htaccess, потому рассмотрим его более подробно.

Есть целый ряд условий, когда рекомендуется использование переадресации 301. Для каждой ситуации нужен свой специальный код в кодировке. Потому рассмотрим отдельно каждый возможный сценарий.

Первое, что нужно сделать – это открыть текстовый файл, который называется .htaccess. Его можно найти в директории вашего сайта на веб-сервере Apache. Убедитесь, что открыли его с помощью простейшего текстового редактора, такого как Notepad на компьютерах, работающих на Windows.

После открытия файла, прежде чем добавить специальный код сценария, вам необходимо выполнить две вещи:

  • Включить модуль Apache mod_rewrite.
  • Включить ReWriteEngine в модуле mod_rewrite.

Чтобы сделать это, добавьте эти две строки кода:

Options +FollowSymLinks
RewriteEngine on

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

Следующий сценарий переадресации используется при перемещении файлов данных, директории и доменного имени в выбранный код. И, конечно, не забудьте проставить данные именно вашего сайта! На этой страницы только примеры такого кода!

Редирект 301 одной страницы на другой URL

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

Redirect 301 /staraja.html http://www.\web-profy.com/novaja.html

В файле . htaccess можно вставить любое количество строк переадресации.

Редирект 301 всей директории и всех файлов на другой URL

Если вы переделали архитектурный дизайн сайта и переименовали директорию, необходимо выполнить переадресацию 301 на всю эту директорию. Сделать это так:

RedirectMatch 301 ^/oldname/ http://www.web-profy.com/newname/

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

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

RedirectMatch 301 ^(.*)$ http://www.web-profy.com

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

Переадресация 301 для канонизации на другой URL

Так как поисковые машины индексируют URL-лы, то имея разные URL-лы, которые перенаправляют для индексации на страницы с одинаковым контентом, это может повлиять на значение PageRank. Безусловно, для оптимизации такое положение не самое лучшее! Суть в том, что если вы хотите присоединить PageRank к одному (каноническому) URL, то для оптимизации поиска нужно обратить внимание на контент страниц сайта.
Когда вы изучите лучшие примеры канонизации, вы захотите применить ее на своем сайте. Это означает, что вы должны учитывать все возможные альтернативы переадресации URL на канонический URL. Используйте следующий пример кода для главной страницы сайта:

RewriteCond %{HTTP_HOST} ^web-profy\.com [NC]
RewriteRule ^(.*)$ http://www.web-profy.com/$1 [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index)\.(html|php|htm)\ HTTP/ [NC]
RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.web-profy.com/$1 [L,R=301]

Первый блок из двух строк перенаправляет URL-лы, у которых опущены префиксы «www.», на адрес домашней страницы, например, “www.xyz.com”. Это означает, что URL домашней страницы http://web-profy.com не появится, а будет перенаправлен на страницу http://www.web-profy.com/.

Второй блок кода перенаправляет URL-лы указанных страниц на те адреса, которые указаны по умолчанию. Такой код гарантирует, что любой URL домашней страницы, имеющий несколько вариантов своего написания и прямых ссылок, как default.htm или index.html, будут перенаправлены на каноническую страницу URL, такую как, http://web-profy.com

Документирование и тестирование работы

Мы настоятельно рекомендуем добавлять строки документирования при работе с кодом в файле . htaccess. Для этого просто сделайте в начале строки комментарий, используя значок # для его выделения, как в следующем примере:

# Redirect this entire domain, abc.com, to the domain web-profy.com
RedirectMatch 301 ^(.*)$ http://www.web-profy.com

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

Безусловно, необходимо протестировать работу внесенных изменений. Если вы используете FTP для загрузки исправленного файла . htaccess в корневом каталоге вашего сайта, самое время выполнить его проверку. Введите в браузере адрес URL страницы, которую вы перенаправили. Она должна моментально перенаправить на прописанный URL.

Поиск и устранение неисправностей

Если переадресация не работает так, как вы того ожидали, то наступает время поиска и устранения неисправностей.

Прежде всего, если переадресация закодирована в вашем файле .htaccess и оно записано корректно, но не работает, то проверьте состояние установки расширения mod_rewrite в Apache. Этот модуль обычно устанавливается по умолчанию, но если его там нет, то кодировка .htaccess, приведенная выше, работать не будет. Также убедитесь, что вы добавили две строки кода, которые разрешают работу модуля mod_rewrite и ReWriteEngine.

Кроме того, заметим, что использование [NC] в строках RewriteCond показывает о несоответствии входных данных с установленными характеристиками. Если вы упустите этот момент, адреса URL-ов с заглавными и строчными буквами могут не так работать, как ожидалось. Заметим, что использование L в коде [L,R=301] говорит о том, что файл движка воспринимается как последняя строчка кода всего процесса подтверждения ввода данных. Если у вас противоречивая конфигурация кода в .htaccess, используйте код L в строке, обозначенной как приоритетной.

И напоследок отметим, что частое использование переадресации 301 не хорошо сказывается на здоровье всего сайта. Хоть она и очень полезна, но вы должны обновлять входящие ссылки сайта на правильные URL-лы. Игнорируя ваши старые входящие ссылки и используя для перехода через них многократно переадресацию 301 (301, затем 301, затем еще раз 301), вы увеличиваете время для загрузки сайта, что плохо сказывается на продвижении сайта. И если переадресаций будет очень много, то сканеры могут просто не дойти до целевого сайта. Если такое случается, то это вредит вашему сайту продвигаться в поисковой системе. Также, если вы обновляете ссылки вашего сайта, убедитесь, что обновляются и файлы sitemap.xml новыми обновленными URL-ми.

Контролируйте работу вашего сайта при помощи переадресации 301 – это стандартная эффективная практика при белой SEO оптимизации. Убедитесь, что вы помогаете сканерам поисковых машин добраться до страниц вашего сайта и, при этом, заработанный PageRank активно вкладывается в продвижение вашего сайта.

22
Окт

Вверх