.htaccess: управление редиректами, защита и оптимизация wordpress
Содержание:
- Правила Redirect, RewriteRule и RewriteCond
- Для чего нужен 301-й редирект
- WordPress: редирект на другую страницу с помощью плагина Redirection
- Как сделать 301 редирект (переадресацию) в WordPress с помощью плагина
- Настраиваем редиректы для SEO
- Когда необходим редирект
- Правильный 301 редирект на новый домен
- Коды для вставки
- 301 редирект со страниц без слеша на страницы со слешем в конце URL
- Как настроить 301 редирект на JavaScript (JSP) и ASP
- Для чего нужен 301 Redirect
- Виды редиректов
- 301 Редирект с помощью скриптов
- Основные способы настройки редиректов
- Что такое 301 Permanent Redirect и код состояния HTTP 301?
- Как проверить редирект страницы?
- Правила настройки Redirect, RewriteRule и RewriteCond
Правила Redirect, RewriteRule и RewriteCond
1.1. Директива Redirect
Синтаксис Redirect:
Redirect /откуда http://куда_полный_адрес
Redirect устанавливает прямой редирект с одной страницы на другую.
В пишут код редиректа. Является необязательным параметром. Чаще всего пишут 301, что сигнализирует о постоянном смене адреса страницы.
Например
Redirect 301 /oldpage.php http://site/newpage.php
Можно также писать по другому
RedirectPermanent 301 /oldpage.php http://site/newpage.php или Redirect permanent 301 /oldpage.php http://site/newpage.php
1.2. Директива RewriteRule
Директива RewriteRule устанавливает правила перехода. Синтаксис следующий:
RewriteRule Шаблон Подстановка
- При внешнем редиректе меняется урл адреса в строке браузера — «»
- При внутреннем — не меняет урл адреса в строке браузера — «» или «»
1.3. Директива RewriteCond
Директива RewriteCond определяет условия при котором выполняется правила в RewriteRule.
RewriteCond Сравниваемая_Строка Условие
Например, этими условиями могут быть браузер пользователя, IP-адрес, заголовок и т.д.
1.4. Директива RedirectMatch
Директива RedirectMatch аналогична Redirect с той лишь разницей, что позволяет записывать регулярные выражения.
RedirectMatch Откуда Куда
Для чего нужен 301-й редирект
Помимо разных способов настройки переадресации, существуют разные виды редиректов. Каждый из них имеет своё кодовое название. Основные виды:
Также существуют 304-й, 306-й и 307-й редиректы. Однако сейчас эти виды практически никто не использует. Один из самых популярных видов — это 301-й.
301-й редирект (Moved Permanently) — это постоянный редирект. Используется для перемещения страницы на новый URL-адрес насовсем. Когда поисковые системы встречают страницу с редиректом 301, они «понимают», что теперь необходимо индексировать новую страницу, а старую можно полностью исключить из индексации. Если настроить переадресацию 301 некорректно, на странице будет отображаться ошибка 404. Индексация страниц с ошибками приводит к снижению SEO-показателей всего веб-ресурса.
WordPress: редирект на другую страницу с помощью плагина Redirection
Redirection — бесплатный плагин, который используют более 2 млн веб-разработчиков. Redirection позволяет:
Чтобы настроить редирект с помощью плагина:
-
1.
Откройте админку WordPress. -
2.
Перейдите в раздел «Плагины» и нажмите Добавить новый. -
3.
Введите в строке поиска справа название плагина Redirection. -
4.
Нажмите Установить → Активировать. -
5.
После установки плагина вы будете переадресованы на страницу первоначальных настроек. -
6.
Закончив настройку, перейдите в раздел «Редиректы». -
7.
В блоке «Добавить новое перенаправление» введите:
Нажмите Добавить перенаправление:
Редирект страниц, которые принадлежат одному сайту
Редирект на другой сайт
Готово! Редирект будет создан. Чтобы проверить корректность работы, наведите курсор на строку и нажмите Проверка перенаправления.
Как сделать 301 редирект (переадресацию) в WordPress с помощью плагина
Очень многие используют одну из самых популярных CMS WordPress. По разным причинам нам может понадобиться сделать редирект внутри сайта. Например, эта необходимость возникла у меня при переносе сайта на новый домен.
Самым оптимальным решением оказался плагин для WordPress, который решил все мои задачи. Минусом этого плагина была только ручное формирование списка ссылок для редиректа.
В целом плагин для WordPress вполне меня устраивает и по сей день.
В место заключения
Возможно, в современных реалиях это не все способы сделать редирект, которые доступны. Но я точно уверен, что это наиболее популярные и действительно рабочие варианты, которые вы можете смело использовать.
Настраиваем редиректы для SEO
Как мы уже упоминали, это самый популярный способ использования .htaccess. Перед тем, как настраивать тот или иной вид переадресации, убедитесь, что это действительно необходимо. Например, редирект на страницы со слешем в некоторых CMS настроен по умолчанию. О настройках редиректа для SEO мы писали в блоге.
При настройке 301 редиректов помните о двух правилах:
- Избегайте нескольких последовательных перенаправлений — они увеличивают нагрузку на сервер и снижают скорость работы сайта.
- Располагайте редиректы от частных к глобальным. Например, сначала переадресация с одной страницы на другую, затем общий редирект на страницы со слешем. Это правило работает не в 100% случаев, поэтому с размещением директив нужно экспериментировать.
1. Настраиваем постраничные 301 редиректы
Это потребуется в следующих случаях:
- изменилась структура сайта и у страницы поменялся уровень вложенности;
- страница перестала существовать, но нужно сохранить ее входящий трафик (например, в случае отсутствия товара обычно делают переадресацию на товарную категорию);
- поменялся URL, что крайне нежелательно, но тоже встречается.
Просто удалить страницу — плохая идея, лучше не отдавать роботу ошибку 404, а перенаправить его на другой URL. В этом случае есть шанс не потерять позиции сайта в выдаче и целевой трафик. Настроить 301 редирект с одной страницы на другую можно при помощи директивы простого перенаправления:
- — адрес страницы от корня, без протокола и домена. Например, .
- — полный адрес страницы перенаправления, включая протокол и домен. Например, .
2. Избавляемся от дублей
Каждая страница сайта должна быть доступна только по одному адресу. Для этого должны быть настроены:
- редирект на страницы со слешем в конце URL или наоборот;
- главное зеркало — основной адрес сайта в поиске.
Сделать это можно при помощи модуля . В его составе используются специальные команды — директивы сложного перенаправления. Первой командой всегда идет включение преобразования URL:
Переадресация на слеш или наоборот
Настроить ли переадресацию на страницы со слешем или без, в каждом случае нужно решать индивидуально. Если у сайта уже накоплена история в поиске, анализируйте, каких страниц в индексе больше. Для новых сайтов обычно настраивают редирект на слеш. Проверить, не настроена ли переадресация по умолчанию, просто: удалите/добавьте слеш в конце URL. Если страница перезагрузится с новым адресом — мы имеем дубли, требуется настройка. Если URL подменяется — все в порядке. Проверять лучше несколько уровней вложенности.
Код 301 редиректа на страницы без слеша:
3. Настраиваем главное зеркало
Для начала нужно определиться, какой адрес будет являться основным для поиска. SSL-сертификат давно уже мастхэв. Просто установите его и добавьте правило в .htaccess. Не забудьте также прописать его в robots.txt.
Редирект на HTTPS
Определять, с «www» или без будет главное зеркало, можно несколькими способами:
- добавить сайт в Яндекс.Вебмастер в двух вариантах, в консоли отобразится информация, какой URL поисковик считает главным зеркалом;
- проанализировать выдачу и посмотреть, каких страниц сайта больше в индексе;
- для нового ресурса не имеет значения, с «www» или без будет адрес, выбор за вами.
После того как выбор сделан, воспользуйтесь одним из двух вариантов кода.
Редирект с без www на www
4. Перенаправляем с одного домена на другой
Самая очевидная причина настройки этого редиректа — переадресовать роботов и пользователей на другой адрес при переезде сайта на новый домен. Также им пользуются оптимизаторы для манипуляций ссылочной массой, но дроп-домены и PBN — серые технологии продвижения, которые в рамках этого материала мы затрагивать не будем.
Воспользуйтесь одним из вариантов кода:
или
Не забудьте поменять в коде «mysite1» и «mysite2» на старый и новый домен соответственно.
Когда необходим редирект
Ниже обозначим основные наиболее актуальные для настройки 301 редиректа ситуации.
Сайт сменил домен.
В случае переезда сайта на новый адрес необходимо настроить постраничный редирект между главными страницами, а также листингами и карточками, чтобы страницы oldsite.ru перенаправляли пользователей и робота на newsite.ru.
Переадресация должна выполняться со всех адресов старого домена на аналогичные страницы нового домена.
Установка SSL-сертификата.
В данном случае необходимо перенаправлять пользователей со страниц с незащищенным протоколом http на страницы с защищенным протоколом https.
Смена URL конкретной страницы.
Такая необходимость может возникнуть в нескольких случаях – смена CMS, смена урловой структуры на сайте и т.д.
Таким образом, необходимо отправить пользователей с site.ru/page1/ на site.ru/catalog/page1/.
Перенос разделов на поддомены.
Такая необходимость появляется, например, если вы хотите отделить какое-либо направление своего сайта в отдельное.
Для того, чтобы объединить сайты, расположенные в разных доменных зонах.
Например, вебмастер покупает домены site.com, site.ru, site.net, site.org и site.biz и на четырех последних сайтах настраивает редирект на основной – site.com.
Устранение дублей страниц или копий сайта.
Наличие дублей может существенно подорвать вашу стратегию продвижения и привести к понижению в ранжировании в поисковых системах. В случае, если в индексе поисковых систем обнаружены дубликаты продвигаемых страниц, настройка переадресации – лучший выход.
Правильный 301 редирект на новый домен
Этот пункт я выделил отдельно, т.к. он больше связан с переносом на другой домен. Тут есть важный момент, это не упустить директиву по правке роботса — она указана на 3 строке кода.
RewriteCond %{REQUEST_FILENAME} robots.txt$ RewriteRule ^(+) $1 RewriteCond %{HTTP_HOST} ^site\.ru RewriteRule ^(.*)$ http://new-site.ru/$1 RewriteCond %{HTTP_HOST} ^www.site\.ru RewriteRule ^(.*)$ http://new-site.ru/$1
С помощью таких не хитрых махинаций мы избавимся от дублей страниц, тем самым улучшив нашу внутреннюю оптимизацию и соответственно качество сайта.
Если у вас появились какие-то вопросы, пишите в комментарии — будем разбираться
Коды для вставки
Чтобы вы не тупили на тему, как настроить 301 редирект, можете использовать эти коды.
С одной страницы на другую
Самый частый случай — это именно редирект с одной страницы на другую. Редиректы с без www на домен с www и так далее я даже не настраиваю, так как большинство моих сайтов сделаны на движке WordPress, а там все эти редиректы настроены по умолчанию. А вот переадресация страницы — это то, что мне бывает частенько нужно. Вот как прописать 301 редирект таким образом:
Redirect 301 /was.php http://www.site.ru/new.php
Новый адрес нужно обязательно указывать с http и доменным именем. Где was.php — там адрес старой страницы, соответственно вместо www.site.ru/new.php также прописывайте свой вариант.
С www на без www
Обычно редирект используют для перемещения на сайт без www, и я думаю это правильно — лишняя приписка не нужна. Для нового сайта рекомендую перемещение на вариант без www, а для старого главным зеркалом нужно указывать тот вариант, который уже находится в индексе поисковой системы.
Как провести редирект с www на без www:
RewriteCond %{HTTP_HOST} ^www.site\.ru$ RewriteRule ^(.*)$ http://site.ru/$1
С без www на www
Если планируется редирект с без www на www, используется другой код:
RewriteCond %{HTTP_HOST} ^site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1
С одного домена на другой
Вот как делается редирект на другой сайт:
RewriteCond %{HTTP_HOST} ^old-site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1
Редирект с одного домена на другой полезен, например, при переезде сайта на новый домен.
С https на http
Как сделать редирект на http:
RewriteCond %{HTTPS} "on" RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}
С http на https
Как сделать 301 редирект на https:
RewriteCond %{SERVER_PORT} ^80$ RewriteCond %{HTTP} =on RewriteRule ^(.*)$ https://domain.ru/$1
Со страниц со слешем / на конце на страницы без слеша
Некоторые месье любят извращения, и хотят с уже нормально работающих и располагающихся в индексе страниц со слешем на конце настроить редирект на страницы без слеша.
RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !$ RewriteRule ^(.*)\/$ /$1
Со страниц без слеша на конце на страницы со слешем
Переадресация 301 на страницы со слешем на конце:
RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*)$ /$1/
Убираем index.php
Если у нас страница site.ru/index.php отдает код 200 ОК, то нужно её убрать нахрен. И проставить 301 редирект с index.php на корень:
RewriteCond %{REQUEST_URI} /index.php RewriteCond %{QUERY_STRING} ^\z RewriteRule ^(.*)$ http://site.ru/?
301 редирект со страниц без слеша на страницы со слешем в конце URL
Причина делать такой редирект та же, что и в ситуации описанным выше, за исключением того, что редирект необходимо делать со страницы без слеша в конце URL на страницу со слешем в конце URL
RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*)$ /$1/
Пример работы редиректа:
Запрос (URL) | Редирект (URL) |
---|---|
http://mysite/page | http://mysite/page/ |
http://mysite/page.html | http://mysite/page.html |
http://mysite/page?value=1 | http://mysite/page/?value=1 |
http://mysite/page/ | без редиректа |
http://mysite/page/?value=1 | без редиректа |
Как настроить 301 редирект на JavaScript (JSP) и ASP
Это метод IT-профессионалами, как и HTML, причисляется к простецким, и используется крайне редко. В случае с JavaScript негативное отношение связано с высокой вероятностью бана поисковыми машинами.
Дело в том, что роботы высчитывают различные скрипты накрутчиков посещаемости, вшитых кодов рекламы, или еще хуже, вирусной активности.
Комбинация JavaScript как раз похожа на эту категорию (для автоматов естественно).
Суть работы директивы сводится в передаче заголовков перед выдачей результатов запроса в поисковике.
Код скрипта для прописывания будет следующий:
<% Response.setStatus(301)$ Response.setHeader(“Location”,” http//www.newdomain.ru/newdir/newpage.htm”); Response.setHeader(“Connection”,”close”); %> |
Некоторые правила, которыми руководствуются опытные пользователи при написании директив редиректа 301:
• При использовании того или иного кода для работы переадресации необходимо убедиться в том, что сервер, где лежит содержимое сайта, поддерживает такую функцию;
• Для того чтобы снизить необоснованную нагрузку на хостинг, можно прописать перенаправление не через файл .HTACCESS, а путем редактирования файла hpptd.conf.
• После настройки директив редиректа необходимо убедиться в правильной работе всех прописанных скриптов. Для это проводят тестирование (посещение старого сайта).
Причем желательно обратиться по нескольким разделам и убедиться, что по всем старым запросам пользователь гарантированно будет перенаправлен на новый адрес ресурса;
• В принципе не возбраняется экспериментирование. Всегда можно попробовать путем проб и ошибок добиться необходимого результата.
Главное знать основы работы с сайтом и все эти манипуляции проводить в области демо-версии сайта (на своем жестком диске), а уж потом перезалить содержимое по ftp;
• Логично предположить, что использование нескольких типов переадресаций не совсем корректно. Поэтому перед настройкой именно 301 редиректа нужно вычислить (вспомнить) и удалить старые директивы.
Для чего нужен 301 Redirect
301 редирект является тем видом перенаправления, который поисковые системы признают как правильное решение для перемещенных страниц сайта. Поэтому при настройке Permanent Redirect никаких изменений в ранжировании или наложений штрафных санкций не происходит. Это естественная переадресация. Какое-то время назад этот способ переадресации использовался вебмастерами для выхода из под фильтров, но не факт, что на сегодняшний день этот способ может помочь. Хотя от определенных фильтров иногда спасает (ссылка).
На сегодняшний день основными показаниями к использованию 301 Редиректа являются ситуации:
- изменения адреса страницы сайта, даже на одну букву или символ;
- склейка зеркал (домен с www и без www, домены в разных зонах);
- смена домена интернет-ресурса;
- борьба с дублями из-за технического бардака.
Где делают Permanent Redirect 301? Способы зависят от возможностей вебмастера и его доступа к данным. Поэтому создать 301 Редирект можно через htaccess, php, настройки сервера, javascript. Естественно, что использовать все способы одновременно не надо.
Адрес страницы изменен
Итог бездумной корректировки URL? Поисковая система видит отказ пользователя и понижает сайт в выдаче по поисковому запросу. Катастрофа. А все из-за какой-то корявой ссылки, которая изначально осталась незамеченной и никого, кроме самого «вебмастера» совершенно не смущала. Но эту ситуацию можно исправить как раз 301 редиректом. Как сделать 301 редирект с одной страницы на другую (со старого url на новый), расскажем дальше.
Склейка зеркал
Зеркала — это, например, когда сайт один, а доменов несколько. Обычно, компании, работающие на бренд, выкупают сразу все доступные зоны, чтобы никто не смог воспользоваться их именем. Также присоединяются названия адреса сайта через дефис и без него. Но даже без такой катавасии, на вашем сайте 100% есть зеркала! В данном случае это написание адреса сайта с www и без, а также доступ через https. В любом из этих случаев делается 301 redirect, причем еще при создании вебресурса, иначе от головной боли с дублями страниц потом тяжело избавится. Редирект 301 с www на без www и наоборот (если основным сайтом является www.имя_домена.ru), а также c http на https (сомневаюсь, что часто бывает перенаправление наоборот), включая разные доменные зоны, обязателен! Для проверки наличия основного зеркала, помогут панели вебмастера поисковых систем.
Исправляем технический бардак
Здесь вариантов устроить технический бардак уйма начиная с нарушений элементарных правил создания страниц и заканчивая дублями, которые создаются плагинами на сайте (переводчики, комментарии, поиск по сайту). Сюда же можно отнести мобильные версии выдачи страниц (с этим в последнее время хлопот немало), но их лечат прописыванием canonical. Дубли создаются не только по вине вебмастера, есть и вынужденные. Но случаи по неопытности первого, все же больше наносят вреда. Некоторые прячут такие погрешности закрытием от индексации, но лучше использовать 301 Permanent Redirect и тогда робот точно поймет, что хочет ему сказать человек.
301 редирект вместо 404 Not Found
Не торопитесь сразу убирать 404 (Страница не найдена) и везде проставлять 301 Редирект
Тут важно прочувствовать разницу. Код 404 Not Found обязателен на страницах, которые удалены или никогда не существовали, а вот с битыми ссылками можно бороться 301 Редиректом! Если страница, которую ищет пользователь, существует, зачем отсылать его по древу сайта для ее поиска? Найдена битая ссылка на какую-то страницу? Перенаправляем по правильному адресу кодом 301 и посетитель даже не догадается о том, что ссылка уже была нерабочая
Виды редиректов
Перед тем как приступить к настройке, определитесь, какой вид редиректа нужен в вашем случае. Ниже мы описали все основные виды редиректов.
300 Multiple Choice (множественный выбор) — это редирект, который сообщает, что по искомому запросу можно перейти не на одну, а на несколько страниц. С его помощью можно настроить перенаправление с основного URL на несколько других страниц, которые похожи по тематике, но отличаются по содержанию. Нередко редирект такого типа встречается на страницах «Википедии». Если какое-то слово или термин имеет несколько значений, вместо одной страницы с определением Википедия выдает страницу со ссылками на объяснение каждого варианта. В зависимости от искомого значения пользователь переходит по нужной ссылке.
301 Moved Permanently (навсегда перемещен) — это постоянный редирект. Используйте этот вид редиректа, если хотите переместить страницу на новый адрес насовсем
В этом случае вы сообщите поисковым системам, что стоит обратить внимание на новую страницу, а исходную можно полностью исключить из индексации. Если настроить редирект 301 некорректно, на странице будет отображаться ошибка 404
Индексация страниц с ошибками приводит к снижению SEO-показателей всего сайта.
302 Moved Temporarily (временно перемещен) — это временный редирект. Редирект 302 настраивают в том случае, когда на основной странице временно ведутся те или иные работы. Все файлы копируют и размещают по другому адресу на определенный период. При переходе на страницу с таким редиректом поисковые роботы сразу поймут, что она перенаправлена на другой ресурс только временно. Поэтому при следующем переобходе они вновь попробуют проиндексировать исходную страницу. И так пока контент не «вернётся» на исходную страницу.
305 Use Proxy (использовать прокси) — этот редирект отсылает браузер к использованию прокси-сервера. В этом случае при обращении браузера к странице в ответ приходит адрес прокси-сервера. Это значит, что к ресурсу можно подключиться только с помощью прокси — промежуточного сервера, который является посредником между пользователем и сервером, на котором хранятся файлы сайта. Прокси-подключение настраивают для защиты локальной сети от внешних подключений, экономии трафика (передачи данных в сжатом виде), и другого.
307 Temporary Redirect — временный редирект. Он сообщает поисковому роботу, что страница временно перенесена на другой URL и через некоторое время вновь будет доступна по старому адресу. Этот редирект похож на 302 Moved Temporarily, однако у него есть существенное отличие — 307 редирект сохраняет метод передачи запроса (GET, POST), который указывает поисковикам, что кешировать документ не нужно. Его используют для краткосрочного переезда, например небольших технических работ. Стоит отметить, что иногда проще на пару часов закрыть сайт на технические работы без редиректа.
Редирект rel=«canonical» — этот редирект предназначен только для поисковых роботов, посетитель при этом видит два дублирующихся ресурса одновременно. С его помощью владелец ресурса сообщает роботам, что у сайта есть несколько версий и они должны просканировать только приоритетную копию, которую владелец пометил как «canonical». Остальные страницы тоже доступны пользователям, но они не индексируются.
Также существуют 304-й и 306-й редиректы. Однако сейчас эти виды практически никто не использует. Некоторые браузеры даже не умеют интерпретировать код таких перенаправлений.
Самые популярные виды редиректов — 301 и 302. При этом чаще всего для переадресации url используют 301-й редирект. Для его настройки используют разные способы.
301 Редирект с помощью скриптов
Очень многие осуществляют редирект с помощью скриптов. Небольшая подборка для разнообразия.
15. ASP редиректы
17. ASP.NET редирект
18. ColdFusion редирект
19. JSP (Java) редирект
20. CGI PERL
Также существуют разные рекомендации от поисковых систем, для реализации 301 редиректа. Я рекомендую использовать рекомендации Google, в которых очень подробно изложены рекомендации о том, как правильно настроить 301 редирект.
Для размещения 301 переадресации на серверах Apache, достаточно изменить, как описано выше файл .htaccess. Если вы не понимаете, как это работает и незадачливые символы в описании выше для вас большая загадка — обратитесь к хостинг-провайдеру или напишите вопрос в комментария.
Основные способы настройки редиректов
Например в 1C-Битрикс существует множество модулей, таких как SEO Редиректы.
Для других CMS также можно установить модули. Вот некоторые ссылки на модули для распространенных CMS: Opencart, WordPress, Webasyst.
Настройка через указание отдельного условия в PHP-скрипте. Таким образом, обращаясь к корневому файлу php браузер получает команду открыть новую страницу вместо старой.
Например:
header(‘HTTP/1.1 301 Moved Permanently’);
header(‘Location: http://www.example.com/’);
Если необходимо перенаправить одну единственную страницу на сайте, одним из решений может быть настройка при помощи HTML путем добавления специального тега в заголовок HTML-документа (Meta Refresh).
Например, < meta http-equiv=»refresh» content=»0; url=http://site.com» >
JavaScript – операция осуществляется непосредственно через браузер и является наиболее медленным способом. Используется, если необходим редирект с задержкой. Минусом является то, что такой редирект не будет работать, если JavaScript отключен в браузере. И не будет учтен Яндексом.
Например, window.location.href=»https://site.com»
Настройка 301 редиректа на nginx. Настройки необходимо вносить в файлах конфигураций виртуальных доменов.
Например, rewrite ^https://$host$request_uri? < флаг >;
где:
$host – имя хоста из запроса, если отсутствует – имя в поле «Host» заголовка, если тоже отсутствует – имя сервера;
$request_uri – первоначальный запрос с аргументами (все, что идет после доменного имени).
< флаги > могут иметь следующие параметры:
permanent – перенаправление с кодом 301,
redirect – перенаправить с кодом 302,
last – закончить обработку с переходом в новый location,
break – закончить обработку и остаться в текущем location.
Для настройки переадресаций на сервере Apache более надежной является настройка серверных редиректов через внесение изменений в файл .htaccess. Разберем этот способ подробнее.
Что такое 301 Permanent Redirect и код состояния HTTP 301?
Редирект может происходить как на стороне сервера, так и через браузер. С сервером работают крайне редко, так как данный метод может замедлять загрузку страниц. А вот браузерный редирект считается более предпочтительным вариантом.
Permanent Redirect 301 или код состояния 301 — одна из популярных разновидностей редиректа. Она позволяет настроить сервер так, чтобы в ответ на запрос браузера он выдавал сообщение о том, что сайт «переехал», причём на постоянной основе. Браузер понимает, что страница больше не доступна по текущему адресу и совершает переход по новому. При этом старый URL становится недействительным, а его вес перемещается на новый адрес.
Как проверить редирект страницы?
Самый очевидный способ — самостоятельно проверить перенаправление в браузере. Перед проверкой не забудьте очистить кэш. Также можно зайти в браузер в режиме инкогнито и проверить работу страницы.
Ещё можно использовать и специальные сервисы, которые помогут избежать этих «заморочек», например:
- Redirect Checker
- PrCy
⌘⌘⌘
Настройка редиректа — важный навык для веб-мастера. Надеемся, что наша статья окажется полезной всем, кто впервые столкнулся с этой темой. Ну а для тех, кто не хочет погружаться в этот вопрос, есть специальные услуги, такие как «Переадресация домена» от REG.RU. ;).
Правила настройки Redirect, RewriteRule и RewriteCond
Существует несколько директив, с помощью которых совершается перенаправление пользователя.
Директива Redirect в htaccess
Синтаксис:
Стандартное перенаправление, которое используется чаще всего. В скобках вместо status необходимо указать код редиректа: 301 или 302. Страница «oldpage» должна быть прописана в формате без указания полного адреса сайта, но с указанием полного относительного адреса URL начиная со слэша «/», то есть нужно указать именно корень сайта.
Адрес «newpage» прописывается полностью, то есть с названием домена и протокола http или https.
Пример:
Пример:
Директива RewriteRule
Синтаксис:
Директива RewriteRule диктует правила перехода на новую платформу. Если проводится внешний редирект, URL меняется в строке браузера — «». При внутреннем редиректе URL не меняется — «» или «».
Директива RewriteCond
Синтаксис:
Директива RewriteCond задает условия, при которых будут выполняться правила RewriteRule. Такими условиями могут стать браузер, IP-адрес, заголовок и т.д.