Что такое редирект

Содержание:

Как сделать Редирект с http на https без htaccess — ковыряем web.config

Если вы хотите сделать 301 редирект с http на https без htaccess и вам не подходят настройки nginx, возможно, у вас хостинг под управлением Windows? Тогда добавляем вот такие строчки в файл web.config на сервере:

<?xml version=»1.0″ encoding=»UTF-8″?>

<configuration>

  <system.webServer>

    <R ewrite>  

    <rules>      

  <rule name=»Redirect to https» stopProcessing=»true»>   

       <match url=»(.*)» />   

       <conditions>  

          <add input=»{HTTPS}» pattern=»off» ignoreCase=»true» />    

      </conditions>    

      <action type=»Redirect» url=»https://{HTTP_HOST}{REQUEST_URI}» redirectType=»Permanent» />  

      </rule>  

    </rules>

  </R ewrite> 

</system.webServer>

</configuration>

Таким образом, будет настроено полное перенаправление домена с http на https, вместе с поддоменами. Но если поддомены трогать запрещено, тогда используем код ниже, вставляя его в тот же web.config:

<?xml version=»1.0″ encoding=»UTF-8″?>

<configuration> 

<system.webServer> 

   <R ewrite>    

  <rules>   

     <rule name=»Redirect to https» stopProcessing=»true»> 

         <match url=»(.*)» />  

        <conditions>     

       <add input=»{HTTPS}» pattern=»off» ignoreCase=»true» /> 

           <add input=»{HTTP_HOST}» pattern=»^domain\.ru» />     

     </conditions>     

     <action type=»Redirect» url=»https://{HTTP_HOST}{REQUEST_URI}» redirectType=»Permanent» />   

     </rule>  

    </rules>

    </R ewrite> 

</system.webServer>

</configuration>

Как сделать редирект через файл htaccess

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

Redirect 301 site.ru/page1/ site.ru/page2/

Где:

  • page1- страница которая будет переадресовывать;
  • page2 – открывающийся документ.

Важно! Можно записывать адреса в относительном виде, например, /page1/ и /page2/. Также допускается использование конструкции:

Также допускается использование конструкции:

Redirect permanent site.ru/page1/ site.ru/page2/

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

Вводим нужное нам правило.

Работа с файлом .htaccess

Создать файл и загрузить его в корневую папку сайта — только первый шаг. Следующий и самый важный — начать работать с настройками, о которые мы описывали выше.

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

Где DirectoryIndex — ключ, а index.php — значение (страница, которую вы хотите использовать в качестве главной страницы сайта).

Чтобы внести какую-либо директиву в конфигурационный файл вашего сайта:

  1. 1.
    Откройте файл .htaccess в корневой папке. Или создайте новый, если директива должна применяться не ко всему сайту, а к конкретному файлу или папке.
  2. 2.
    Скопируйте нужную директиву и вставьте ее в файл.
  3. 3.
    Замените значение для вашего сайта (нужный домен, страница и т. п.).
  4. 4.
    Сохраните изменения.

Обратите внимание! Не вносите в .htaccess видоизмененные команды, если не уверены в их работе. Повреждение файла может повлечь за собой сбой работы сайта

Ниже вы найдете директивы для нескольких наиболее распространенных операций в файле .htaccess.

Коды для вставки

Чтобы вы не тупили на тему, как настроить 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/? 

Цепочки редиректов

Что это и почему это плохо?

Цепочка редиректов — это перенаправление не в один, а в больше, чем 2 шага. Специалисты спорят про их вредность: не сильно вредными называют до 5 переходов, так как поисковые роботы способны по ним перейти.

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

Как найти?

Для поиска цепочек используйте чекеры или специальные сервисы. Самые популярные:

Здесь собрано много полезных инструментов для веб-мастера, в том числе и для проверки редиректов сайта. Сервис работает быстро и показывает всю цепочку редиректов, а не одно перенаправление.

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

Можно смотреть цепочки редиректов, время и код ответа. Проверяет страницу на наличие ошибок сервера, доступность, успешность проведения запроса.

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

Также для проверки можно применять расширения для браузеров:

Redirect Path для Google Chrome;

Live HTTP Header для Mozilla Firefox, Chrome.

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

Как устранить?

Вам понадобится выяснить причину и понять, почему возникает перенаправление. Проверьте логи, действительно ли там есть эти перенаправления. Если не нашли, то поищите в основном коде подобные строки:

Если страница, на которой обнаружена перенаправление, имеет динамический адрес, который генерируется при переходе, возможно, скрипт сам генерирует и редиректы. Будьте бдительны при перезаписи URL адресов страниц, особенно используя шаблоны. Это распространенная причина цепочек и циклов перенаправления.

Важно! Стоит убрать с сайта внутренние ссылки на редиректы или заменить ссылками на доступные страницы. Чтобы увидеть входящие ссылки на такие URL, достаточно нажать комбинацию клавиш Shift+F1

Пример файла .htaccess

Ниже мы приводим пример «боевого» файла .htaccess c комментариями. Комментарии не отображаются в основном коде и используются для пояснений. Чтобы добавить комментарий, поставьте перед строкой шарп (#).

# Закрыт доступ к просмотру листинга (списка директорий) сайта:

# Задана пользовательская страница для ошибки 404:

# Настройка параметров php для версии 7.x:

# Настройка ЧПУ для 1С-Битрикс:

# Указание индексного файла:

# Включение модуля mod_expires и выставление настроек времени кэширования статических файлов:

Итак, мы рассмотрели создание .htaccess (Windows), а также часто используемые директивы, которые нужны для управления сайтом. По инструкциям вы сможете выставить нужные настройки.

Помогла ли вам статья?

раз ужепомогла

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 без редиректа

Зачем настраивать редирект

Есть несколько основных причин перенаправлять пользователя на другой URL. Давайте рассмотрим их подробнее.

Для указания главной версии сайта

Возможно, вы замечали, что адрес одних сайтов начинается с https, а других — с http. Также иногда в адресе указан префикс www, а иногда его нет. Выбор протокола и решение использования www перед основным доменом определяют главное зеркало ресурса. Это основная версия сайта, на которую перенаправляют всех пользователей, если они вводят в строку поиска альтернативный вариант URL-адреса.

В этом случае редирект необходим для избежания проблем с дублями контента. Что такое дубли страниц и почему это плохо, можно почитать в нашей статье.

Для решения проблемы дублей

Дубли страниц возникают не только из-за разных протоколов и префикса www в URL-адресе, но и по ряду других технических причин. Также иногда дублируется сам контент — страницы-копии обычно удаляют, а с них настраивают редирект.

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

Перенаправление при добавлении завершающего слеша

Когда вы вбиваете адрес страницы в строку поиска, то скорее всего не добавляете слеш в конце. Иногда браузер сам «дописывает» его к URL-адресу — происходит это благодаря редиректу. Как и в случае с протоколом и www, вебмастеру нужно определиться, будут ли на сайте использоваться завершающие слеши, чтобы избежать проблем с дублями.

Ниже мы адаптировали схему, которой аналитик Google Джон Мюллер поделился в своем аккаунте Twitter.  

Как вы видите, иногда завершающие слеши приводят к дублированию, а иногда нет. Например, в варианте F и G можно легко получить дублированный контент.

Решить проблему можно двумя способами: использовать тег canonical либо установить перенаправление на нужный вам вариант страницы.

Перенаправление при использовании расширения файлов в URL

Иногда в конце адреса страницы указывается расширение файла, например, .html, .htm, .php, .aspx. Чтобы пользователь, вбивая в строку поиска URL вида https://site.com/page/, все равно попал на страницу https://site.com/page.html и чтобы избежать дублирования контента, используется перенаправление.

Перенаправление URL-адреса в нижний регистр

Один и тот же URL-адрес, прописанный в верхнем и нижнем регистре, — это две разные страницы. Правило хорошего тона — использовать в URL нижний регистр. Поэтому чтобы адрес вида https://site.com/PAGE/ был доступен только как https://site.com/page/, также применяется перенаправление. Естественно, редирект здесь нужен и для того, чтобы предотвратить проблемы с дублями. 

Для сохранения ссылочного веса и трафика при смене URL

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

Например, вы использовали страницу https://site.com/festivals-2020/, но в конце года решили обновлять контент страницы и публиковать на ней все фестивали следующего года. Чтобы убрать из URL-а прошлый год, вы решаете создать новую страницу https://site.com/festivals/. Эта страница будет постоянно обновляться и содержать контент, который ранее публиковался на странице https://site.com/festivals-2020/. Чтобы избежать каннибализации, вы принимаете решение удалить старую страницу https://site.com/festivals-2020/ и перенаправить трафик и ссылочный вес на новую страницу https://site.com/festivals/.

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

Наиболее популярные правила

Приведенные примеры работают для серверов функционирующих на APACHE, для NGINX настройки в файле .htaccess работать не будут. В примерах используется %{QUERY} — так обозначается часть URL, которая следует после знака вопроса. Правила для редиректа срабатывают только при условии соответствия правилу указанному в редиректе.

При настройке правила редиректов в файле .htaccess все правила необходимо указывать после указанных двух строк, либо просто добавьте их:

Options +FollowSymLinks
RewriteEngine On

301 редирект для страниц имеющих Get-параметры в URL

Для наглядности примера допустим адрес страницы имеет вид http://mysite.ru/catalog/index.php?IBLOCK_ID=5&SECTION_ID=15. Следующее правило будет делать переадресацию:

RewriteCond %{QUERY} ^IBLOCK_ID=5&SECTION_ID=15$ 
RewriteRule ^catalog/index\.php$ /newcatalog/? 

Иногда необходимо настроить редирект для изменяющихся Get-параметров, например в текущем примере динамическим параметром будет SECTION_ID:

RewriteCond %{QUERY} ^IBLOCK_ID=5&SECTION_ID=(.*)$ 
RewriteRule ^catalog/index\.php$ /newcatalog/? 

Переадресация со страниц без значения Get-параметра

Например адрес страницы имеет вид — http://mysite.ru/?addon, тогда редирект будет следующим:

RewriteCond %{QUERY} ^addon$  
RewriteRule ^$ /? 

Переадресация одного адреса, без вложенных адресов

Например довольно часто необходимо настроить переадресацию со страницы раздела http:/site.ru/razdel/, однако прочие страницы в данном разделе должны работать без редиректа, например страница http://mysite.ru/razdel/section.php?SECTION_ID=1. Для этого нужно добавить всего один символ — $.

RewriteRule ^razdel/$ http://mysite.ru/new-razdel/ 

Виды редиректов

Перед тем как приступить к настройке, определитесь, какой вид редиректа нужен в вашем случае. Ниже мы описали все основные виды редиректов.

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-й редирект. Для его настройки используют разные способы.

Как это работает?

Попробуем разобраться, как работает эта конфигурация htaccess редиректа http на https. Это поможет внести необходимые изменения:

RewriteEngine On

Первая строка позволяет Apache запустить механизм преобразования http-ссылок, необходимый для выполнения перенаправления:

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} !^www. 

Эти две строки — условия перенаправления, они используются для определения того, должен ли запрос быть перенаправлен. Если любое из этих двух условий возвратит true, то Apache выполнит перенаправление, поскольку условия соединяются с помощью .

Первое условие определяет, использует ли запрос URL не-HTTPS. Второе условие определяет, использует ли запрос URL www. Заметьте, я использовал www.а не www., потому что образец является регулярным выражением и точка здесь используется для экранирования. Следовательно, ее нужно оставить:

RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ 

Четвертая строка — она соответствует имени хоста входящего запроса, и разделяет его на www часть (если таковая имеется), и остальную часть имени хоста. Мы будем ссылаться на нее позже с помощью %1 в RewriteRule.

Если вы знаете имя хоста заранее, то можно улучшить правило редиректа с http на https, встроив URL и пропустив это условие (пример ниже):

RewriteRule ^ https://www.%1%{REQUEST_URI} 

RewriteRule – центральный элемент перенаправления. С помощью этой строки мы предписываем Apache перенаправить любой запрос на новый URL, который состоит из:

  • https: // WWW;
  • %1: Ссылка на без-WWW часть хоста;
  • %{REQUEST_URL}: URL-запрос, без имени хоста.

Все эти маркеры соединены друг с другом, и представляют собой конечный URL перенаправления. В конце мы добавляем три флага:

  • NE — чтобы не выйти из специальных символов;
  • R=301 — использовать HTTP статус 301 редиректа;
  • L — прекратить обработку других правил, и немедленно перенаправить.

3.Другие примеры с htaccess

3.1. Запретить IP-адрес и браузер

Запретим открывать сайт для пользователя с браузера IE с IP-адресом 172.111.222.55

RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteCond %{REMOTE_ADDR} ^172\.111\.222\.55$
RewriteRule ^.*$ - 

Запретим для всех файл disable_file.html:

<Files disable_file.html>
deny from all
</Files>

3.3. Разрешить доступ с одного ip

Доступ будет разрешен только с одного ip-адреса 172.111.222.55

order deny,allow
deny from all
allow from 172.111.222.55

3.4. Запретить доступ с разных ip

Запретить доступ к сайту с нескольких ip-адреса 172.112.222.55, 172.113.222.55, 172.114.*.*

<Limit GET POST PUT>
order deny,allow
deny from all
deny from 172.112.222.55
deny from 172.113.222.55
deny 172.114.*.*
</LIMIT>

3.5. Редирект в URL с больших символов на маленькие

Все большие буквы в адресе URL будут переведены на маленькие.

RewriteRule  - 
RewriteRule ! - 

RewriteRule ^(*)A(.*)$ $1a$2
RewriteRule ^(*)B(.*)$ $1b$2
RewriteRule ^(*)C(.*)$ $1c$2
RewriteRule ^(*)D(.*)$ $1d$2
RewriteRule ^(*)E(.*)$ $1e$2
RewriteRule ^(*)F(.*)$ $1f$2
RewriteRule ^(*)G(.*)$ $1g$2
RewriteRule ^(*)H(.*)$ $1h$2
RewriteRule ^(*)I(.*)$ $1i$2
RewriteRule ^(*)J(.*)$ $1j$2
RewriteRule ^(*)K(.*)$ $1k$2
RewriteRule ^(*)L(.*)$ $1l$2
RewriteRule ^(*)M(.*)$ $1m$2
RewriteRule ^(*)N(.*)$ $1n$2
RewriteRule ^(*)O(.*)$ $1o$2
RewriteRule ^(*)P(.*)$ $1p$2
RewriteRule ^(*)Q(.*)$ $1q$2
RewriteRule ^(*)R(.*)$ $1r$2
RewriteRule ^(*)S(.*)$ $1s$2
RewriteRule ^(*)T(.*)$ $1t$2
RewriteRule ^(*)U(.*)$ $1u$2
RewriteRule ^(*)V(.*)$ $1v$2
RewriteRule ^(*)W(.*)$ $1w$2
RewriteRule ^(*)X(.*)$ $1x$2
RewriteRule ^(*)Y(.*)$ $1y$2
RewriteRule ^(*)Z(.*)$ $1z$2

RewriteRule  - 

RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 

Типы и настройка редиректов

Типы редиректов принято разделять по тому, как они реализованы. Самый популярный у SEO-специалистов метод — серверный редирект, который настраивается в файле .htaccess (конфигурационный файл наиболее распространённого сервера Apache). Кроме того, для реализации перенаправлений можно использовать файл nginx.config, а также PHP, HTML, JavaScript.

Редиректы могут иметь разный HTTP-статус. По коду состояния HTTP поисковые системы и браузеры определяют, к какому виду относится редирект. Всего есть 9 видов таких редиректов, но на практике используются три статус-кода.

2.1. 301 Moved Permanently

301 редирект — это постоянный редирект, который демонстрирует, что документ перенесён на новый URL-адрес. 301 редирект лучший вариант для оптимизации сайта под поисковые системы. Он позволяет заменить адрес документа в выдаче со старого на новый без потери позиций и трафика.

Я собрал общие случаи использования 301 редиректа.

2.1.1. Редиректы www

Вот как настроить редирект из домена с www на домен без www:

RewriteCond %{HTTP_HOST} ^www\.bacon\.com$
RewriteRule ^(.*)$ http://bacon.com/$1

А вот так можно настроить редирект URL без www в URL с www:

RewriteCond %{HTTP_HOST} ^bacon\.com$
RewriteRule ^(.*)$ http://www.bacon.com/$1

2.1.2. Изменение расширения файла

Если вы перешли на другую платформу или CMS, и в этом процессе были изменены только URL-адреса, вы должны использовать следующую переадресацию.

RedirectMatch 301 (.*)\.php$ http://www.bacon.com$1.html

2.1.3. Редирект с разных доменов и поддоменов

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

RewriteCond%{HTTP_HOST}!^www\.site\.com.(.*)$
RewriteRule ^(.*)$ http://www.site.com. %1/$1

2.1.4. Слеши в конце URL-адреса

Вы должны помнить, что поисковые системы рассматривают URL-адреса с и без слеша (https://www.bacon.com/sandwich/ и https://www.bacon.com/sandwich) как два разных URL-адреса. Определите, какой из них более подходит для вашего сайта, и настройте следующие переадресации.

Чтобы удалить слеш в конце URL-адреса:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1

Чтобы добавить слеш в конце URL-адреса:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /$1/

2.1.5. Переключение с HTTP на HTTPS

Вам необходимо установить команду для 301 редиректа на HTTPS-версию сайта. Если у вас есть WordPress CMS с управлением хостингом cPanel, вы можете прочитать подробное руководство по переходу на HTTPS.

2.1.6. Управление битыми ссылками

Если вы навсегда удалили одну из своих страниц и создали новую, установите 301 редирект на главную или новую страницу и удалите все ссылки на эту страницу на своём сайте.

RewriteRule ^old/URL/path$ http://site.com/new/path

Подробнее читайте в посте о том, как найти битые ссылки.

2.2. 302 Found, 302 Moved Temporarily

302 редирект демонстрирует, что запрошенный ресурс временно перемещён. Данный вид редиректа может быть использован для страниц с краткосрочными акциями и распродажами конкретного товара. Не рекомендую использовать его для адресов, изменённых навсегда. Роботы поисковых систем индексируют только ту страницу, на которую установлен редирект, но в выдаче останется старый URL. Однако, если робот поисковой системы решит, что вы по ошибке настроили 302 редирект вместо 301, он заменит адрес в выдаче, как и в случае с 301 редиректом. И вернуть его обратно будет проблематично.

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

Redirect 302 /old.html http://localhost/new.html

2.3. 307 Moved Temporarily

Временный редирект, который указывает, что документ временно доступен по другому URL. Отличие от 302: сохранение метода передачи запроса (GET, POST), который указывает поисковикам, что кешировать документ не стоит (если нет дополнительных указаний).

Вы можете установить 307 Moved Temporarily, когда контент перемещается только временно (например, при перепроектировании). Это позволяет поисковикам понять, что ваш сервер совместим с HTTP 1.1.

Кроме того, клиенты не должны автоматически переадресовывать запросы POST / PUT / DELETE. Кэширование должно выполняться только в том случае, если в ответе сервера есть заголовки Cache-Control или Expires.

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

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

Adblock
detector