Способы htaccess редиректа

Способы htaccess редиректа

В процессе создания сайтов, практически любой веб-мастер сталкивается с необходимостью установки htaccess редиректа с одного адреса на другой. Такая переадресация может понадобиться, например, когда необходимо перенести страницу или сайт на другой адрес/домен.

Перенаправление htaccess редиректом позволяет перемещать страницы и при этом не терять их из выдачи поисковых систем, т.е. если пользователю в выдаче результатов ПС будет показываться, какое-то время, старый адрес, то он при переходе по нему, попадёт на новую страницу и тем самым найдёт то, что искал. К тому же, в случае редиректа 301, вес старой страницы передаётся новой.

Самый простой и распространённый код, это когда переносится страница с одного места в другое. Например, нам надо переместить все файлы из директории /old_adress/ в /new_adress/ и чтобы при переходе по старому адресу пользователь попадал на новый, мы в htaccess пишем такой код:

Redirect /old_adress/ /new_adress/

или перенести только один файл из вышеуказанных папок, тогда пишем:

Redirect /old_adress/file.html /new_adress/file.html

Обратите внимание, что все записи требуют точного синтаксиса, т.е. стоит где-то не дописать пробел или вставить что-то лишнее, в лучшем случае команда просто не будет работать, а в худшем — сайт вообще «потухнет», и вы на него просто не зайдёте, пока не исправите свою ошибку. Поэтому всегда будьте очень внимательны, к тому, что пишете в файле htaccess .

Вышеприведённый код создаёт обычную переадресацию без точных атрибутов. Но дописав в код число 301 (перемещено навсегда) или 302 (временно перемещено), мы получим явно указанный редирект. Делается это так:

Redirect 301 /old_adress/ /new_adress/

или

Redirect 302 /old_adress/ /new_adress/

Для переноса сайта очень важным является редирект 301, так как это позволяет кроме перенаправления пользователей на нужный адрес, ещё и передать вес старых страниц, в «глазах» поисковиков, новым страницам. Выполнить данный редирект очень просто, пишем в htaccess старого домена:

Redirect 301 / http://example.com/ #example.com - это ваш новый домен

Слеш (косая черта '/') в конце обязателен, все пробелы писать точно!

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

Смотреть код

Следует отметить, что такая переадресация не по вкусу поисковым системам и за это можно попасть под АГС (фильтр). Такой код зачастую используют мошенники, которые умудряются получить доступ к вашему конфигурационному файлу htaccess . Веб-мастер зачастую и не знает что у него мобильные пользователи, а это с каждым днём всё больше и больше пользователей Сети, куда-то отправляются на вредоносный сайт. Поэтому я рекомендовал бы вам проверять время от времени свой сайт, заходя на него с телефона или просто подменив в браузере user-agent на мобильный телефон.

Известно, что адрес example.com и www.example.com для поисковых систем совершенно два разных сайта и таким образом у вас получается два сайта с одинаковым контентом, что негативно влияет на оптимизацию вашего проекта. Чтобы этого не происходило, можно поставить редирект такого вида:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

Таким образом мы убираем зеркало сайта www.example.com и перенаправляем пользователя на основной домен example.com, что предотвращает склейку зеркал и "убивает" дублирование страниц сайта.