Полное руководство по 301 редиректу
Содержание:
- Наиболее популярные правила
- Сервисы для контроля Редиректов
- Как настроить редирект
- Как узнать, что переадресация работает правильно
- Как устроен редирект?
- Что такое 301 редирект для сайта
- 301 Редирект с помощью скриптов
- Что такое редирект и когда он нужен
- Примеры 301 редиректов в .htaccess
- 2.1. Редирект с одной страницы на другую
- 2.2. Редирект со всех файлов .htm на .html
- 2.4. Удаление лишних слэшей в адресе URL
- 2.5. Реврайт без редиректа
- 2.6. Простановка замыкающего слеша в конце адреса главной страница
- 2.8. Редирект GET параметров
- 2.9. Редирект на мобильную версию сайта m.site.ru
- 2.10. Редирект с поддомена
- Настройка редиректов в .htaccess
- Как сделать 301 редирект в .htaccess
- Как сделать 302 редирект в .htaccess
- Принудительная загрузка сайта с www
- Принудительная загрузка сайта без www
- Принудительная загрузка сайта по протоколу HTTPS
- Принудительная загрузка сайта по протоколу HTTP
- Редирект домена на директорию
- Редирект с одного сайта на другой
- Как настроить 301 редирект
- Когда редирект с https на http не работает — что делать?
- Способ 2. htaccess-редирект
Наиболее популярные правила
Приведенные примеры работают для серверов функционирующих на 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/
Сервисы для контроля Редиректов
Конечно же, как же без сервисов для отслеживания редиректов на сайтах. За всем нужен глаз да глаз. Поэтому посоветую парочку вариантов для контроля.
Расширения для браузера, которые контролируют редиректы:
- HttpFox для Mozilla;
- HTTP Headers для Google Chrome.
С помощью этих инструментов можно отслеживать перенаправление по адресам, скорость и порядок загрузки страниц. Таким способом можно выявить циклическую цепочку, если она образовалась. На этом закругляю свои длинную статейку, надеюсь, мои советы вам помогут разобраться во всех основных тонкостях перенаправления ссылок.
Как настроить редирект
Настроить редирект можно несколькими способами: изменяя код в файле .htaccess, через админку сайта или в специальных сервисах
Важно: работа с файлом .htaccess возможна при использовании на хостинге веб-сервера Apache
Для работы в .htaccess нужно установить FTP-клиент (например, filezilla.ru или totalcommander.ru) и уметь работать с кодом, поэтому такой способ сложнее. Обычно его выбирают, когда нужно перенести домен и сделать это бесплатно. Более лёгкий способ — купить доступ к сервису. Тогда знания кода не нужны.
Если нужно сделать перенаправление со страницы, подойдёт более простой вариант переноса — через админку сайта.
В этой статье рассмотрим эти способы на примере самых распространённых причин для редиректа.
Перенос сайта с одного домена на другой
Этот тип перенаправления можно сделать с помощью FTP-клиента. Этот вариант подойдёт тем, кто умеет работать с кодом или готов этому научиться.
Если язык программирования не для вас, перенести домен можно без знаний кода. У RU-CENTER есть специальный сервис «Перенаправление домена».
Перенос с помощью FTP-клиента
Откройте FTP-клиент и найдите файл .htaccess в корневом каталоге вашего сайта. Уточнить путь к корневому каталогу вы можете у вашего хостинг-провайдера. Если в корневом каталоге сайта нет файла .htaccess, создайте новый файл с таким именем (точка в начале имени обязательна).
Как узнать, что переадресация работает правильно
Узнать, корректен ли код 301 редиректа можно при помощи браузера. Введите в адресную строку URL страницы, с которой совершается переадресация. В идеале Вы должны увидеть ту страницу и тот URL, на которую был настроен редирект.
После того, как Вы настроили 301 редирект, его необходимо проверить на корректность работы. Для этого введите в адресной строке своего браузера URL страницы, с которой была сделана переадресация. Если Вы видите новую страницу, то есть, ту, на которую сделали редирект — то все корректно работает.
Также можно заглянуть в Яндекс.Вебмастер, открыть раздел «Инструменты» — > «Проверка ответа сервера». В поле «Опрашиваемый URL» введите адрес старой страницы. Вы должны получить код статуса http — «301 Moved Permanently».
Как устроен редирект?
Общий алгоритм редиректа выглядит следующим образом:
1. Пользователь в браузере открывает страницу. Например, site/abc.html
2. Сайт возвращает браузеру специальный заголовок, в котором указывает какую страницу необходимо открыть вместо запрошенной. Например, site/abc2.html
3. Браузер открывает страницу, адрес которой был указан в заголовке.
В реальности же, зависит от того, как реализован редирект:
1. С помощью htaccess. Многие существующие сайты используют Apache (серверная программа для сайтов). И файл htaccess позволяет настраивать в нем сложные правила переадресации страниц. Алгоритм аналогичен общему.
2. С помощью PHP (и иные серверные языки). Тот же самый специальный заголовок может сформировать серверный язык, такой как php. Алгоритм аналогичен общему.
3. С помощью мета тега HTTP-EQUIV=REFRESH. С некоторого времени, браузеры стали поддерживать специальный мета тег в html, который позволяет перенаправлять пользователей с одной страницы на другую. Пример:
<meta http-equiv="refresh" content="5; URL=site.ru">
где «5;» — это время в секундах, через которое необходимо осуществить редирект, а URL=site.ru — это адрес страницы.
Алгоритм следующий. Браузер загружает полноценную страницу по старому адресу (и отображает ее пользователю), видит данный заголовок и осуществляет перенаправление через указанное время.
Данный подход появился из-за того, что порой требуется отобразить некую информацию до переадресации. Например, поясняющий текст о том, что страницы разделов были перенесены.
4. C помощью JavaScript. Это не совсем переадресация в полноценном смысле. Дело в том, что перенаправление на другой url происходит после того, как страница будет полностью загружена (в этом смысле схоже с мета тегом), и после выполнения специальной команды, вида:
window.location.href = "";
Отличие в том, что данная команда может быть вызвана в произвольном месте и неожиданно для браузера. Именно поэтому этот метод сложно считать полноценным редиректом.
Стоит знать, что корректными для поисковых систем считаются htaccess, php и мета тег. JavaScript далеко не всегда может корректно восприниматься, поэтому его стоит использовать только для внутренних целей (например, в ЛК пользователей).
Что такое 301 редирект для сайта
Что такое 301 редирект? Даже не так. Что такое Redirect? Это команда поисковому роботу перенаправлять посетителя на другую страницу, которая была перемещена в другое место. Цифра 301 — это код, который говорит об окончательном перемещении страницы в новую локацию. Ведь когда мы переходим на какую-то страницу и нам выдается ошибка, мы видим перед собой код этой ошибки и расшифровку. Например, код 404 говорит нам — Not Found, что означает — страница не найдена, а 505 ошибка сообщает, что ответ от сервера не был получен. Но если вышеописанные ошибки видны посетителю на открытой странице браузера, то шифры перенаправления видят только роботы, которые и направляют гостя по другой ссылке (если, конечно, редирект был настроен правильно). Вот как раз новую ссылку, меняющуюся в адресной строке браузера посетитель и заметит. То есть 301 редирект перебрасывает пользователя с одной страницы на другую, не останавливаясь на промежуточном адресе, доводя до конечного места локации контента.
Каким образом происходит процесс перемещения? С помощью кода в файлах на сервере с сайтом размещается специальный код, который роботы поисковых систем считывают и выполняют. В этом коде обязательно присутствуют константы: откуда переместить и куда. Причин для использования 301 редиректа на сайте может быть множество, рассмотрим основные из них в этой статье, ведь, возможно, что какой-то способ вам понабиться, и вы им воспользуетесь.
301 Редирект с помощью скриптов
Очень многие осуществляют редирект с помощью скриптов. Небольшая подборка для разнообразия.
15. ASP редиректы
17. ASP.NET редирект
18. ColdFusion редирект
19. JSP (Java) редирект
20. CGI PERL
Также существуют разные рекомендации от поисковых систем, для реализации 301 редиректа. Я рекомендую использовать рекомендации Google, в которых очень подробно изложены рекомендации о том, как правильно настроить 301 редирект.
Для размещения 301 переадресации на серверах Apache, достаточно изменить, как описано выше файл .htaccess. Если вы не понимаете, как это работает и незадачливые символы в описании выше для вас большая загадка — обратитесь к хостинг-провайдеру или напишите вопрос в комментария.
Что такое редирект и когда он нужен
Неактуальный сайт или страницу программисты называют донором, а ту, на которую перенаправляют, — акцептором. В нашем случае http://nic.ru/ — сайт-донор, а https://nic.ru/ — сайт-акцептор.
В каких случаях нужен редирект
- Для адаптации. Самый популярный редирект — перенаправление пользователя с десктопной версии сайта на мобильную.
- При ренейминге. В случаях, когда вы изменили название бренда и перешли на сайт с новым доменным именем.
- При переходе на безопасный протокол соединения. Чтобы обезопасить себя и своих клиентов, меняете протокол http на https.
- Для перенаправления с неактуальных страниц/сайтов. Например, товара больше нет в продаже или вы больше не оказываете какую-то услугу и хотите перенаправить пользователя на страницу с похожим товаром или услугой.
- При сайтах или страницах-дублях. Схожий контент на нескольких ресурсах ухудшает ранжирование, а если сайты или страницы идентичны, поисковые системы вовсе исключат эти страницы из поиска. Чтобы не создавать дубли и не рисковать ранжированием, настраивают постоянный или временный редирект.
- При частых запросах с www, если ваш сайт без www. На вас могут сослаться и так, и так, но для поисковых систем это разные сайты, поэтому настраиваете редирект на один из вариантов.
- При переходе на новый движок сайта. У каждой CMS свои правила генерации URL. Если адрес не будет совпадать со старым, без редиректа не обойтись — иначе клиенты не смогут вас найти.
Это не все возможные поводы для редиректа. Они возникают в зависимости от того, какие проблемы нужно решить перенаправлением.
Какие бывают редиректы
Есть четыре основных вида редиректа — 301, 302, 303, 307. Поисковые системы сами определяют его по коду состояния http.
301 — постоянный редирект
Он означает, что ресурс навсегда перемещён на новый адрес. Сайт-донор пропадает из поиска, авторитет и показатели посещаемости передаются сайту-акцептору, который и будет индексироваться.
302 — временный редирект со статусом «Найдено»
Поисковые системы расценивают страницу как временно несуществующую и перенаправляют пользователя на нужную. Все настройки и показатели останутся по старому адресу, индексироваться новый сайт тоже не будет. Такое перенаправление пригодится, например, когда нужно будет обновить сайт.
303 и 307 — аналоги 302 редиректа
303 редирект обозначает «смотрите другой ресурс», его применяют, когда вы не перенесли контент на другой адрес, но у вас есть подходящий под перенаправление другой сайт или страница. Для этого редиректа браузер использует метод GET.
Статус 307 редиректа — временное перенаправление. То есть запрашиваемая страница в данный момент находится по другому адресу. В отличие от 302 изначальная версия ресурса сохранит свои позиции.
Вам не обязательно запоминать, какой редирект что обозначает. Эти цифры при настройке вам не пригодятся. Достаточно понимать, какое решение подойдёт именно в вашей ситуации — временное или постоянное — и написать код, подходящий под нужный редирект.
Примеры 301 редиректов в .htaccess
Мы уже рассматривали множество примеров с редиректом по в статьях:
- 301 редирект для удаления/добавления слэша в конце URL
- 301 редирект с index (.html и .php) на корень сайта «/»
- Редирект 301 с http на https
- Редирект 301 с www на без www
- Смена адреса сайта — редирект со старого домена на новый
Здесь мы дополним варианты редиректов, которых еще не было.
2.1. Редирект с одной страницы на другую
Редирект с site.ru/cat/oldpage на site.ru/newpage.html
RewriteRule ^cat/oldpage.* /newpage.html
Или второй вариант:
Redirect 301 /cat/oldpage http://www.site.com/newpage.php
2.2. Редирект со всех файлов .htm на .html
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)\.htm$ $1.html
Или второй вариант:
RewriteRule ^(.*)\.htm$ $1.html
С любой страницы в каталоге и подкаталогах /old/ будет происходит редирект на /new.php
RewriteRule ^old(.*)$ /new.php
2.4. Удаление лишних слэшей в адресе URL
Например, страница /catalog///stranica.html доступна и открывается. Чтобы избежать такой ситуации и не плодить бесконечное число дублей следует записать следующий редирект
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2
2.5. Реврайт без редиректа
Можно загрузить другую страницу без смены адреса страницы URL. Например, загрузим страницу /news.html, а в адресной строке будет отображаться адрес /news/happy
RewriteRule ^news/happy.* /news.html
2.6. Простановка замыкающего слеша в конце адреса главной страница
Например, многие сервера работают так, что последний слэш не пишется в URL. Например, http://site.ru. Ниже приведенный код решают это проблему: сайт будет открывать по http://site.ru/
RewriteCond %{REQUEST_URI} /++$ RewriteRule ^(.+)$ %{REQUEST_URI}/
Например для редиректа со страницы site.com/directoriya/stranica.html на site.com/stranica.html нужно прописать следующее:
RewriteRule ^directoriya/(.+)$ http://site.com/$1
Или второй вариант:
RewriteCond %{DOCUMENT_ROOT}/directoriya/$1 -f RewriteRule ^(.*)$ directoriya/$1
2.8. Редирект GET параметров
Например, сделать редирект со страницы /?act=page&id=2 на /page-2/
RewriteCond %{QUERY_STRING} act=page RewriteCond %{QUERY_STRING} id=(\d+) RewriteRule .* /page/%1/? ]
2.9. Редирект на мобильную версию сайта m.site.ru
В данном примере сначала проверяется факт того, что пользователь открыл сайт с мобильного устройства , далее происходит замена адреса сайта на m.URL
RewriteCond %{HTTP_HOST} ^(.*)$ RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android) RewriteRule ^$ http://m.%1
2.10. Редирект с поддомена
Например, выполним редирект с любой страницы поддомена poddomen.site.ru на основной домен site.ru
RewriteCond %{HTTP_HOST} ^poddomen.site.ru$ RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI}
Настройка редиректов в .htaccess
Ранее говорилось о том, что .htaccess позволяет устанавливать правила управления перенаправлениями (редиректами). Далее мы рассмотрим самые часто используемые из них.
Как сделать 301 редирект в .htaccess
301 редирект сообщает поисковикам о том, что веб-адрес был навсегда перемещен в другое место. Использовать постоянное перенаправление можно для веб-страниц, директорий или полностью всего сайта.
301 редирект передает ссылочной вес страницы. Его правильная настройка может понадобиться когда, например, выполняется перенос сайта из одного домена на другой.
Чтобы сделать 301 редирект со страницы staraya-stranitsa.html на novaya-stranitsa.html добавьте в .htaccess следующий код:
Redirect 301 /staraya-stranitsa.html https://example.com/novaya-stranitsa.html
Как сделать 302 редирект в .htaccess
В отличие от 301 редиректа, 302 сообщает поисковикам о том, что веб-адрес был перемещен в другое место временно. Временное перенаправление применяется в таких случаях:
- если нужно временно перенаправить трафик с одного сайта на другой;
- если нужно показать посетителям сайта другую информацию без изменения старой страницы;
- если на сайте выполняются технические работы;
Еще один способ применения 302 редиректа, который нередко используют хостинговые компании — скрытие от посетителей страниц сайта, которые содержат запрещенный контент.
302 редирект не передает ссылочный вес страницы.
Чтобы выполнить временное перенаправление со страницы staraya-stranitsa.html на novaya-stranitsa.html добавьте в .htaccess следующий код:
Redirect 302 /staraya-stranitsa.html https://example.com/novaya-stranitsa.html
Принудительная загрузка сайта с www
Чтобы сайт загружался по адресу www.example.com даже если пользователь вводит в браузере example.com, добавьте в .htaccess следующий код:
RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com RewriteRule ^(.*)$ https://www.example.com/$1
Принудительная загрузка сайта без www
Чтобы сайт загружался по адресу example.com даже если пользователь вводит в браузере www.example.com, добавьте в .htaccess следующий код:
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com RewriteRule ^(.*)$ https://example.com/$1
Принудительная загрузка сайта по протоколу HTTPS
Чтобы сайт загружался по защищенному протоколу передачи данных HTTPS (https://example.com/) даже если пользователь хочет загрузить его по протоколу HTTP (http://example.com/), добавьте в .htaccess следующий код:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}
Принудительная загрузка сайта по протоколу HTTP
Чтобы сайт загружался по протоколу передачи данных HTTP (http://example.com/) даже если пользователь хочет загрузить его по защищенному протоколу HTTPS (https://example.com/), добавьте в .htaccess следующий код:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} ^https$ RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} </IfModule>
Редирект домена на директорию
Чтобы при заходе на сайт https://example.com/ выполнялось перенаправление в директорию сайта https://example.com/directory/ добавьте в .htaccess следующий код:
RewriteCond %{HTTP_HOST} ^example.com$ RewriteCond %{REQUEST_URI} !^/directory/ RewriteRule (.*) /subdir/$1
Редирект с одного сайта на другой
Чтобы выполнить перенаправление с одного сайт на другой (https://example-1.com/), добавьте в .htaccess сайта, с которого должен выполняться редирект, следующий код:
Redirect 301 / https://example-1.com/
Как настроить 301 редирект
Джон Мюллер предупреждает, что Google может не проиндексировать конечную страницу, если не соблюсти все правила. Нужно использовать канонический тег, внутренние ссылки и при необходимости тег hreflang для конечной страницы, а не той, с которой вы перенаправляете пользователя. Иначе Google получит неправильные сигналы и может не проиндексировать конечную страницу.
Настроить переадресацию можно через панель управления вашим хостингом или вручную средствами HTML, PHP, JavaScript.
В настройках конкретного хостинга обычно подробно описано, как сделать редирект через панель управления. Для разных CMS есть специальные плагины для редиректов. Разберем способы для настройки вручную на примере редиректа на сайт с www или без него.
Редирект для Nginx
Для серверов под Nginx нужно использовать файл nginx.config, добавьте код в секцию server. Если вы настроили виртуальные хосты, для каждого хоста нужно редактировать файлы отдельно.
С домена с www на домен без www
server {#... if($host~ * www\.(.*)) { set $host_without_www $1; rewrite ^ (.*) $ http: //$host_without_www$1 permanent; }#... }
С домена без www на домен с www
server {#... if($host~ * ^ + \. + $) { rewrite ^ (.*) $ $scheme: //www.$host$1 permanent; }#... }
После изменения nginx.config перезапустите nginx с помощью команды «service nginx restart». Проверить, все ли корректно заполнено, можно через команду «nginx -t».
Редирект для Apache
Если вы используете Apache, вам нужен файл .htaccess. Для доступа есть несколько вариантов:
- Используйте FTP и включите отображение скрытых файлов. Найдите .htaccess в каталоге public_html в папке с названием домена.
- Откройте панель управления хостингом, включите отображение скрытых файлов и найдите его через Диспетчер файлов.
Скачайте .htaccess, добавьте код редиректа и загрузите файл заново. Если файла .htaccess нет, его нужно создать.
На домен без www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.site\.ru$ RewriteRule ^(.*)$ <a href="https://site.ru/https://site.ru/$1" class="redactor-autoparser-object">https://site.ru/https://site.ru/$1</a>
На домен с www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^site.ru RewriteRule (.*) <a href="http://www.site.ru/http://www.site.ru/$1" class="redactor-autoparser-object">http://www.site.ru/http://www.site.ru/$1</a>
Редирект через PHP
Действует на уровне сервера. Лучше использовать другой способ, потому что этот работает медленно. Через PHP перенаправление настраивают для сайтов, где редирект нужен на многих, но не на всех страницах.
Файл index.php расположен в корневой папке. Скачайте его и добавьте код или отредактируйте прямо в диспетчере файлов в панели управления хостингом.
На домен без www
<!--?php header("Location: http://site.ru/", true, 301); exit(); ?-->
На домен с www
<!--?php header("Location: http://www.site.ru/", true, 301); exit(); ?-->
Редирект через HTML
Редирект через HTML-код медленнее, он работает на стороне браузера. Код нужно добавить между тегами и страницы, с которой нужно перенаправить. В параметре content=»» указывают задержку по времени.
На домен без www
<meta http-equiv="refresh" content="0; url=http://site.ru/">
На домен с www
<meta http-equiv="refresh" content="0; url=http://www.site.ru/">
Редирект через JavaScript
Редирект настраивают и с помощью JavaScript, он работает на стороне браузера, как и HTML. Это медленный способ и не сработает, если у пользователя в браузере отключен JavaScript. Его обычно настраивают для редиректов с задержкой, если такое требуется.
Код для редиректа нужно добавить между и в код первой исходной страницы.
На домен без www
<script type="text/javascript"> window.location.replace("http://site.ru/"); </script>
Для задержки:
На домен с www
<pre><script> window.location.replace("http://www.site.ru/"); </script></pre>
Через cPanel
cPanel — это платная панель управления веб-хостингом. В ней тоже можно настроить редиректы, причем не используя вводы кодов. Во вкладке «Домены» есть раздел «Перенаправления», там нужно настроить редирект.
На домен без www
- В списке выберите нужный домен.
- В поле «Перенаправляет на» пропишите его с префиксом http://.
- Поставьте отметку у «Перенаправлять только с www»
На домен с www
- В списке выберите нужный домен.
- В поле «Перенаправляет на» пропишите его с префиксом http://www.
-
Поставьте отметку у «Не перенаправлять www»
Когда редирект с https на http не работает — что делать?
Не всегда прописывание одного кода на разных сайтах срабатывает с полным успехом. Бывает, возникают ошибки по вине сервера, из-за бардака в конфигурационных файлах или элементарно сделана ошибка в командных строчках.
Когда 301 редирект с https на http не работает — пользуемся другими вариациями кода. В htaccess меняем предыдущий распространенный код на вот такой:
# Redirect HTTPS to HTTP
R ewriteCond %{HTTP:X-Forwarded-Proto} =https
R ewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}
Если не работает redirect 301 с http:// на https://, в .htaccess прописываем следующее:
R ewriteEngine On
R ewriteCond %{SERVER_PORT} !^443$
R ewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}
В случае возникновения циклической реакции — корректируем под такой шаблон:
R ewriteEngine On
R ewriteCond %{HTTPS} off
R ewriteCond %{HTTP:X-Forwarded-Proto} !https
R ewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}
Способ 2. htaccess-редирект
Этот редирект делается простым помещением файла .htaccess в папку где нужно сделать редирект.
Например, редирект любого url (из папки где .htaccess) на нужный адрес, вот содержимое .htaccess:
RewriteEngine On RewriteRule (.*) //leonov-do.ru/ |
Возможны более сложные редиректы, но такой вариант по своей сути — такой же как и header-редирект (если указывается внешний URL). Возможны вариант переадресации файла — вместо (.*) указать к примеру имя go — будет редиректить адрес go и т.п. Можно указать в одном файле несколько строчек RewriteRule подряд с разными правилами — тогда не нужно писать каждый раз RewriteEngine On.