редирект 301 htaccess https на http
с http на https
или как другой вариант
с https на http
редирект с одной страницы на другую
редирект с www на без www (главное зеркало – домен без www)
редирект с без www на www (главное зеркало – домен с www)
редирект со страниц со слешем на без слеша (весь сайт)
редирект со страниц без слеша на слеш (часто в CMS системах устанавливается автоматически)
один (а не два последовательных!) редирект на без www и с слешем на конце адреса страницы
один (а не два последовательных!) редирект на c www и со слешем на конце адреса страницы
один (а не два последовательных!) редирект на c www и без слеша на конце адреса страницы
один (а не два последовательных!) редирект на без www и без слеша на конце адреса страницы
редирект только адреса site.ru/index.php (без GET параметров) на основное зеркало site.ru
редирект всех адресов с index.php и GET параметрами на страницы только с GET параметрами (вырезать в url index.php)
редирект для index.php, index.html или index.htm (например в Joomla), массовая склейка
редирект url с GET параметрами (динамический URL) на статический
1 вариант (простой адрес с GET параметром)
2 вариант (со страницы и GET параметром)
все страницы одного домена на главную страницу другого домена
каждая страница одного домена на такой же адрес другого url
301 редирект c http на https через htaccess
301 редирект с http на https позволяет осуществить полный переезд сайта на защищенный протокол после установки SSL-сертификата.
Как сделать 301 редирект с http на https через htaccess
При переезде сайта с http на https (установка SSL-сертификата) потребуется код, который не требует дополнительных модификаций:
Второй метод осуществляет перенос с http://domain.ru на https://domain.ru:
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]
Третий способ выполняет аналогичную функцию, но отключает перенаправление для robots.txt:
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]
В 4-й версии конечным пунктом для пользователя станет https://www.domain.ru:
RewriteRule ^(.*)$ https://www.domain.ru/$1 [R=301,L]
Позволяет сделать форвардинг с http://www.poddomen.domain.ru на https://poddomen.domain.ru:
RewriteCond %
RewriteRule ^(.*)$ https://poddomen.domain.ru/$1 [R=301,L]
Последняя версия, дающая возможность сделать связь между http://poddomen.domain.ru на https://www.poddomen.domain.ru:
RewriteCond %
RewriteRule ^(.*)$ https://www.poddomain.domain.ru/$1 [R=301,L]
Перенаправление с https на http
При необходимости сделать обратную интеграцию и перейти на незащищенную версию протокола можно воспользоваться:
Как это сделать?
Для того, чтобы выполнить правило, потребуется посетить административную панель хостинга (или же зайти через FTP), где в корневой папке сайта лежит файл htaccess.
Вводим нужное нам правило.
Как проверить работу 301 редиректа?
Для этого можно использовать инструмент проверки ответа сервера Яндекса:
Здесь вводим адрес первой страницы и видим следующее:
Как видим правило применилось и работает корректно.
Подписывайтесь на наш канал в Яндекс.Дзен
Подписывайтесь на наши социальные сети
Вам также будет интересно
Комментарии 4
Выдает ошибку — ERR_TOO_MANY_REDIRECTS
(( Как быть?
Добрый день, спасибо за обратную связь, скорей всего у Вас стоит слишком много правил на редиректы. Рекомендую отключить лишние модули на сайте, которые перенаправляют пользователей, так как Ваш сайт на WordPress использовать именно модуль для редиректа, это проще и легче.
Как это сделать описано здесь: https://seopulses.ru/redirect-dlya-sayta-na-wordpress-cherez-plagin-ili-htaccess/
Ты своей говно — статьёй вводишь людей в заблуждение!
Я из-за тебя кучу времени потратил!
Долбоёб — удали свою писанину и не занимайся этим.
Добрый день, спасибо за обратную связь, не могли бы подсказать какой именно момент в инструкции вызвал проблемы?
Редирект с https на http
Иногда потребность в возврате с https на протокол http вызвана тем, что быстроробот Гугла в несколько раз реже заходит на «безопасный сайт», и не видит обновлений контента.
Как сделать редирект с https на http?
Решение 1
Замечание Перечисленные ниже варианты предназначены для серверов Linux.
Вариант 1
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Вариант 2
RewriteCond %
RewriteRule ^(.*)$ http://%
Вариант 5
RewriteCond %
RewriteRule ^.*$ http://%
Вариант 7
RewriteCond %
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Вариант 10
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Вариант 12
RewriteCond %
RewriteRule ^.*$ http://%
Замечание Если не работает, то можно попробовать поместить, указанные выше строки, в выражение IfModule.
Замечание Обычно, при открытии сайта, Сначала браузер, как правило, открывает версию https сайта. Но это не точно. На самом деле, это зависит от настроек сервера и сайта. Если вебсервер отдаёт заголовок «Strict-Transport-Security» ( смотрим в настройках add_header Strict-Transport-Security ), тогда браузер будет открывать сайт по HTTPS протоколу. Дополнительно, этот заголовок появляется, если в настройках web-домена установлено: «Повышенная безопасность SSL»
Если Решение 1 не работает?
В частности этим грешат серверы и VDS с панелью ISP Manager 5 ( на других панелях управления, например cPanel, с Lunix на этом же сайте переадресация работает! )
Решение 2
Открываем и внимательно смотрим ваш сайт (для примера site.ru )именно по протоколу httpS
если он не ваш и отличаются и по внешнему виду и по контенту, то нужно выяснить его ( URL ). Обычно это один из https сайтов, расположенный на вашем IP адресе. Найти список сайтов на вашем IP можно стандартным сервисом «Сайты на одном IP»
И теперь все дальнейшие правки, как ни странно, будем вести не на проблемном сайте, а на найденном (https-sait.ru)!
Идея: поставить передресацию с https на http на найденном https сайте https-sait.ru
13 Решение: создаем в корне этого сайта в файле htaccess правила типа условное выражение такого вида:
Почему это происходит?
Решение 3
Замечание Предлагаемое решение работает на серверах с NginX.
Если у вас сервер с nginx, тогда делаем переадресацию в его настройках
находим и удаляем там же строку
add_header Strict-Transport-Security «max-age=31536000;»;
Если что то не работает, перезагружаем nginx и смотрим ошибки, которые находятся в /var/log/nginx/error.log
Нужно же, чтобы сайт открывался как по http, так и по https. Если прописывать редирект в nginx на http
Некоторые, устав бороться с NginX, сносят его и ставят классический редирект
Если вы ещё не знаете, зачем нужно перенаправление страниц сайта, читайте нашу статью Что такое редирект.
Для чего нужен 301-й редирект
Помимо разных способов настройки переадресации, существуют разные виды редиректов. Каждый из них имеет своё кодовое название. Основные виды:
Также существуют 304-й, 306-й и 307-й редиректы. Однако сейчас эти виды практически никто не использует. Один из самых популярных видов — это 301-й.
301-й редирект (Moved Permanently) — это постоянный редирект. Используется для перемещения страницы на новый URL-адрес насовсем. Когда поисковые системы встречают страницу с редиректом 301, они «понимают», что теперь необходимо индексировать новую страницу, а старую можно полностью исключить из индексации. Если настроить переадресацию 301 некорректно, на странице будет отображаться ошибка 404. Индексация страниц с ошибками приводит к снижению SEO-показателей всего веб-ресурса.
1С-Битрикс — популярная CMS в которой время от времени необходимо настраивать перенаправление.
Где www.site.ru — домен, с которого происходит редирект, а site.ru — домен, на который происходит редирект.
Где www. — домен, с которого происходит редирект, а www. — домен, на который происходит редирект.
Где site.ru — имя вашего домена.
Где site.ru — имя вашего домена.
Где site.ru — имя вашего домена.
Где site.ru — имя вашего домена.
Для всех страниц с http:// на https://, в том числе и с http://www на https://
Если первый вариант не поможет, воспользуйтесь вторым вариантом:
Если все варианты не помогли и возникает циклическая переадресация:
Код состояния HTTP 301 или Moved Permanently («Перемещено навсегда») — стандартный код ответа сервера, который может быть получен, если запрошенный URL-адрес сайта был навсегда перенесен в новое месторасположение.
Проверка кода ответа. Быстрая и бесплатная проверка кодов ответа для списка URL в режиме онлайн реализована в рамках комплекса инструментов «Пиксель Тулс», предусмотрено удобное цветовое кодирование и загрузка URL файлом.
Анализ проведён с помощью инструментов в сервисе Пиксель Тулс.
Options +FollowSymLinks
RewriteEngine On
# Текстовый комментарий, данная строчка не будет обрабатываться.
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
RewriteCond %
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ https://pixelplus.ru/$1 [R=301,L]
Redirect 301 /was.php http://www.site.ru/new.php
При этом, новый адрес указывать необходимо полностью с http и доменным именем.
RewriteRule ^dir /dir-new/$1 [R=301,L]
Скажем, адрес страницы имеет вид: http://www.site.ru/dir/index.php?IBLOCK_ID=1&SECTION_ID=111 тогда для настройки 301 переадресации на новый адрес, необходимо использовать следующее правило:
RewriteCond %
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]
Если один (или несколько) из GET параметров не задан(ы) или может иметь произвольное значение (в нашем примере это SECTION_ID), можно использовать следующий код:
RewriteCond %
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]
Если адрес имеет следующий вид: http://www.site.ru/?abc то для перенаправления подойдет последовательность строчек:
RewriteCond %
RewriteRule ^$ /? [R=301,L]
Если требуется настроить переадресацию только для адреса http://www.site.ru/dir/, но при этом чтобы страница http://www.site.ru/dir/index.php?IBLOCK_ID=1 открывалась по старому адресу, необходимо использовать спецсимвол $ в правиле.
RewriteRule ^dir/$ http://www.site.ru/new-dir/ [R=301,L]
Для доменов в зоне РФ действуют все те же правила, но только все кириллические символы необходимо заменить на альтернативный код (он на латинице). В частности, сама зона .рф преобразуется в .xn--p1ai.
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
И для домена в зоне РФ:
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/si-te/ [R=301,L]
RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://www.newsite.ru/new/ [L,R=301]
RewriteRule ^dir(.*)$ /new-file.php [L,R=301]
RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301]
RewriteRule ^dir(.*)$ /all.php [L,R=301]
RedirectMatch 301 (.*)\.html$ http://www.new-site.ru$1.php
RewriteRule ^img/(.+)\.jpg$ http://img.domain.ru/$1.jpg [R=301,L]
Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.
DirectoryIndex index.html index.php index.htm index.shtml
RewriteCond %
RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L]
Для всех индексных страниц на сайте:
RewriteRule ^(.*)index\.php$ http://www.site.ru/$1 [R=301,L]
RewriteCond %
RewriteRule ^(.*)$ http://site.ru%
RewriteRule [^abc]/unique-file.html /unique-file.html [R=301,L]
Код позволяет поставить 301-редирект со всех папок вида http://site.ru/***/uniqe-file.html на один файл в корне /unique-file.html. Бывает полезен при переделке сайта и изменении ссылок.
RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L]
Код позволяет создать копию страницы с относительным адресом /studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/
Позволяет устранить наличие дублей URL с HTTPS в индексе поисковых систем.
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]
Настройка позволяет отклонить спамный реферальный трафик с ряда ресурсов по заголовку HTTP_REFERER.
Внимание, важно чтобы код ответа сервера для 404 ошибки был именно 404. Путь к файлу указывается с помощью следующей строчки:
ErrorDocument 404 /404-for-me.php
! Для сайтов, на которых используется не сервер Apache, аналогичные 301-редиректы легко настраиваются с помощью PHP.
! Оптимально настраивать все редиректы сразу на конечную страницу (без промежуточных перенаправлений, в один шаг) это улучшает их восприятие со стороны поисковых систем и пользователей.
RewriteCond %
RewriteRule (.*) http://mobile.site.ru/ [L,R=301]
RewriteCond %
RewriteRule (.*) http://no-search.site.ru/ [L,R=301]
Переадресация с www.site.ru/component/content/?view=featured на www.site.ru/
RewriteCond %
RewriteRule ^component/content/$ /? [R=301,L]
Переадресация с www.site.ru/index.php?idc=4&marea=6 на www.site.ru/
RewriteCond %
RewriteRule ^index\.php$ /? [R=301,L]
. — Точка заменяет произвольный символ.
[abc] — обозначает перечень символов, совпадающих с буквами a, b, или с.
[^abc] — перечень символов, которые не входят в указанных диапазон. Совпадёт с любым символом, кроме a, b, или с.
* — означает, что предшествующий символ может повторяться (0 или более раз).
[abc]* — команда найдёт идущие подряд символы из заданного набора.
[^abc]* — с точностью до наоборот.
.* — заменяет абсолютно любой набор символов. «.*» — найдёт все подстроки между кавычками.
^ — начало строки (в том случае, если используется в начале выражения).
$ — обозначает конец строки.
\w — буква, цифра или подчёркивание _.
\d — заменяет любую цифру.
\D — заменяет любой символ, но не цифру.
8 — заменяет любую цифру.
[a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.
[A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.
[a-zA-Z] — любая буква от a до Z в любом регистре.
[a-Z] — то же самое.
Памятка по используемым символам и обозначениям
Строчка RewriteCond — условие выполнения правила RewriteRule. Если условие выполняется, то срабатывает редирект. Правила могут задаваться с помощью регулярных выражений.
Спецсимволы, используемые в правилах и их значения.
Модификаторы используются после обычных, спецсимволов или их групп и позволяют расширить возможности шаблонов для срабатывания правил.
Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].