301 редирект с http на https


Введение. Правила приведены для сервера Apache. В правилах: %{QUERY_STRING} — обозначает фрагмент URL-адреса после знака вопроса (задания значений CGI-параметров). Срабатывание того или иного правила для редиректа определяется тем, попадает URL-адрес страницы под это правило или нет. О значении тех или иных обозначений (^, $, NC и т.д.) см. памятку в конце страницы.

Проверка кода ответа. Быстрая и бесплатная проверка кодов ответа для списка URL в режиме онлайн реализована в рамках комплекса инструментов «Пиксель Тулс», предусмотрено удобное цветовое кодирование и загрузка URL файлом.

Коды ответа списком
Анализ проведён с помощью инструментов в сервисе Пиксель Тулс.

Ниже даны наиболее используемые правила настройки файла .htaccess для 301-редиректа. Лучше размещать все правила после двух строк:

Options +FollowSymLinks
RewriteEngine On


# Текстовый комментарий, данная строчка не будет обрабатываться.

RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Для HTTPS-версии:

RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
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 %{QUERY_STRING} ^IBLOCK_ID=1&SECTION_ID=111$ [NC]
RewriteRule ^dir/index.php$ /new/sef/? [R=301,L]

Если один (или несколько) из GET параметров не задан(ы) или может иметь произвольное значение (в нашем примере это SECTION_ID), можно использовать следующий код:

RewriteCond %{QUERY_STRING} ^IBLOCK_ID=1&SECTION_ID=(.*)$ [NC]
RewriteRule ^dir/index.php$ /new/sef/? [R=301,L]

Если адрес имеет следующий вид: http://www.site.ru/?abc то для перенаправления подойдет последовательность строчек:


RewriteCond %{QUERY_STRING} ^abc$ [NC]
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 %{HTTP_HOST} ^old-site.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

И для домена в зоне РФ:

RewriteCond %{HTTP_HOST} ^xn-….xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.site.ru/$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ http://www.site.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^si-te.ru$ [NC]
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 %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://www.site.ru/ [R=301,L]

Для всех индексных страниц на сайте:
RewriteRule ^(.*)index.php$ http://www.site.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^test.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI} [R=301,NC,L,QSA]

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/

RewriteCond %{HTTPS} «on»
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]


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

RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

RewriteCond %{HTTP_REFERER} ref-spam-site.ru [NC,OR]
RewriteCond %{HTTP_REFERER} another-ref-spam.ru [NC]
RewriteRule .* — [F]

Настройка позволяет отклонить спамный реферальный трафик с ряда ресурсов по заголовку HTTP_REFERER.

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

ErrorDocument 404 /404-for-me.php

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

! Для сайтов, на которых используется не сервер Apache, аналогичные 301-редиректы легко настраиваются с помощью PHP.

<?php
header(«HTTP/1.1 301 Moved Permanently»);
header(«Location: http://www.site.ru/dir/»);
exit();
?>

! Оптимально настраивать все редиректы сразу на конечную страницу (без промежуточных перенаправлений, в один шаг) это улучшает их восприятие со стороны поисковых систем и пользователей.

RewriteCond %{HTTP_USER_AGENT} (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series 60|symbos|windows mobile|windows ce|ppc|smartphone|blackberry|mtk|bada|windows phone) [NC]
RewriteRule (.*) http://mobile.site.ru/ [L,R=301]


RewriteCond %{HTTP_USER_AGENT} !(accoona|ia_archiver|antabot|ask jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator|jigsaw|webalta|yahoofeedseeker |yahoo! slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer) [NC]
RewriteRule (.*) http://no-search.site.ru/ [L,R=301]

Переадресация с www.site.ru/component/content/?view=featured на www.site.ru/
RewriteCond %{QUERY_STRING} ^view=featured$ [NC]
RewriteRule ^component/content/$ /? [R=301,L]

Переадресация с www.site.ru/index.php?idc=4&marea=6 на www.site.ru/
RewriteCond %{QUERY_STRING} ^idc=4&marea=6$ [NC]
RewriteRule ^index.php$ /? [R=301,L]

. — Точка заменяет произвольный символ.
[abc] — обозначает перечень символов, совпадающих с буквами a, b, или с.
[^abc] — перечень символов, которые не входят в указанных диапазон. Совпадёт с любым символом, кроме a, b, или с.
* — означает, что предшествующий символ может повторяться (0 или более раз).
[abc]* — команда найдёт идущие подряд символы из заданного набора.
[^abc]* — с точностью до наоборот.


.* — заменяет абсолютно любой набор символов. «.*» — найдёт все подстроки между кавычками.
^ — начало строки (в том случае, если используется в начале выражения).
$ — обозначает конец строки.

w — буква, цифра или подчёркивание _.
d — заменяет любую цифру.
D — заменяет любой символ, но не цифру.
[0-9] — заменяет любую цифру.
[a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.
[A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.
[a-zA-Z] — любая буква от a до Z в любом регистре.
[a-Z] — то же самое.

RewriteRule (.*) $1? [R=301,L]
Располагать после: RewriteBase /

Памятка по используемым символам и обозначениям

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

Спецсимволы, используемые в правилах и их значения.

  • ^ — спецсимвол начала строки;
  • $ — спецсимвол конца строки;
  • ! — спецсимвол отрицания;
  • . — точка, заменяет любой символ, но только один;
  • () — группировка;
  • — «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом;
  • # — начало текстового комментария в файле.

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

  • ? — символ повторяется 0 или 1 раз.
  • + — повторяется от 1 до 65536 раз.
  • * — повторяется от 0 до 65536 раз.

Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].

  • NC — флаг NoCase, отключающий проверку регистра символов при срабатывании правила.
  • R — флаг Redirect, производит процесс остановки изменения URL-адреса и возвращает результат. Чаще всего используется значение R=301, но возможны и другие для временных перенаправлений (302, MOVED TEMPORARY).
  • L — флаг Last, останавливает формирования URL-адреса и строка считается окончательной.

pixelplus.ru

Советы

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

Старайтесь не делать редирект на страницу ответ которой отличен от кода 200. Т.е. редирект должен переадресовывать на существующую страницу с 200 ответом сервера.

Браузеры кэшируют редиректы, поэтому проверять их лучше с помощью онлайн ресурсов.

301 редирект с одной страницы на другую


Используется когда страница переехала с одного URL на другой. Например старый URL страницы /page-1/ необходимо сделать 301 редирект на URL http://mysite.com/new-page-1/

Redirect 301 /page-1/ http://mysite.com/new-page-1/  

или

RewriteCond %{REQUEST_URI} ^/page-1/$  RewriteRule ^.*$ http://mysite.com/new-page-1/? [R=301,L]  

301 редирект с www на домен без www

301 редирект домена с www на без www так же называется канонизацией домена или склейкой. Например делаем редирект с http://www.mysite.com на http://mysite.com, т.о. главное зеркало сайта это http://mysite.com

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

или

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

301 редирект с домена без www на домен с www

Также как и в случае описанным выше это еще называется канонизацией домена или его склейкой. Например 301 редирект с домена http://mysite.com на домен http://www.mysite.com, т.е. главное зеркало это www.mysite.com

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

или

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

301 редирект со страниц со слешем на страницы без слеша в конце URL


Часто бывает так что одна и та же страница доступна по двум URL, например /may-best-page и /my-best-page/, если человеку понятно что это одна и та же страница, то поисковые системы понимают это как две разные страницы, соответственно разбивают вес страницы, а также показываются в аналитике (статистике) как 2 разные страницы. Для того, что бы избежать этого вы можете сделать 301 редирект со страниц со слешем в конце URL на без него.

RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} ![^/]$  RewriteRule ^(.*)/$ /$1 [R=301,L]  

Такой редирект будет работать следующим образом:

Запрос (URL) Редирект (URL)
http://mysite/page/ http://mysite/page
http://mysite/page/?value=1 http://mysite/page?value=1
http://mysite/page.html/ http://mysite/page.html
http://mysite/page?value=1/ http://mysite/page?value=1
http://mysite/page без редиректа
http://mysite/page.html без редиректа
http://mysite/page?value=1 без редиректа

301 редирект со страниц без слеша на страницы со слешем в конце URL

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

RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteRule ^(.*[^/])$ /$1/ [R=301,L]  

Пример работы редиректа:

Запрос (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 редирект со всех страниц одного домена на главную страницу другого домена

К примеру вам необходимо сделать 301 редирект с любого URL текущего сайт (к которому относиться .htaccess) на домен http://mysite.com

RewriteCond %{REQUEST_URI} (.*)  RewriteRule ^(.*)$ http://mysite.com/ [L,R=301]  

301 редирект с каждой страницы одного домена на такой же URL адрес другого домена

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

RewriteCond %{REQUEST_URI} (.*)  RewriteRule ^(.*)$ http://mysite.com/$1 [L,R=301]  

301 редирект с протокола http на протокол https

Если у вас на сайте есть SSL сертификат и работает протокол https, то для 301-го редиректа вам необходимо добавить в .htaccess следующий код:

RewriteCond %{HTTPS} !=on  RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]  

301 редирект с протокола https на http

И обратный пример, если у вас нет SSL сертификата и протокол https не работает:

RewriteCond %{HTTPS} =on  RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]  

Удаляем несколько слешей подряд в URL и делаем 301 редирект

Если по случайности у вас появились URL такого вида: mysite.com/page///my-page, то можно сделать 301-й редирект без дублирования слешей:

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$  RewriteRule . %1/%2 [R=301,L]  

Удаляем подряд несколько тире (дефисов) и делаем 301 редирект

Как в ситуации с повторяющимися слешами в URL может появиться несколько тире или дефисов, для 301-го редиректа с их удалением добавляем код:

RewriteCond %{REQUEST_URI} ^(.*)--(.*)$  RewriteRule . %1-%2 [R=301,L]  

Вырезать из URL index.php

Пример без GET параметров, например с mysite.com/index.php на mysite.com/

RewriteCond %{REQUEST_URI} /index.php  RewriteCond %{QUERY_STRING} ^z  RewriteRule ^(.*)$ http://mysite.ru/? [R=301,L]  

Пример с GET параметрами, например с mysite.com/index.php?value=1&p=3 на mysite.com/?value=1&p=3

RewriteCond %{REQUEST_URI} /index.php  RewriteRule ^(.*)$ http://mysite.ru/ [R=301,L]  

Несколько примеров совмещения 2-х редиректов в один

Для избежания последовательных редиректов можно использовать совмещенные варианты.

301 редирект с www на без www и со слешем в конце URL

Комбинируем 301 редирект с www на домен без www и 301 редирект со страниц без слеша на страницы со слешем в конце

RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} ![^/]$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)$ http://%1/$1 [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]  

301 редирект с без www на с www и со слешем в конце URL

Комбинируем 301 редирект с домена без www на домен с www и 301 редирект со страниц без слеша на страницы со слешем в конце URL

RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} ![^/]$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]  

301 редирект с без www на с www и без слеша в конце URL

Комбинируем 301 редирект с домена без www на домен с www и 301 редирект со страниц со слешем на страницы без слеша в конце URL

RewriteCond %{REQUEST_URI} ^/$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} /$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)/$ http://www.%1/$1 [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} /$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)/$ http://www.%1/$1 [L,R=301]  

301 редирект с www на без www и без слеша в конце URL

Комбинируем 301 редирект с www на домен без www и 301 редирект со страниц со слешем на страницы без слеша в конце URL

RewriteCond %{REQUEST_URI} ^/$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)$ http://%1/$1 [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} /$   RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)/$ http://%1/$1 [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)$ http://%1/$1 [L,R=301]    RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} /$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)/$ http://%1/$1 [L,R=301]  

кодер.укр

Редиректы

Редирект наверное лучше всего настроить через .htaccess, путем вставки такой конструкции перед правилами WordPress. А лучше перед всеми правилами, т.е. в самое начало файла:

# SSL: 301 redirect to https from http <IfModule mod_rewrite.c> 	RewriteEngine On 	RewriteCond %{SERVER_PORT} !^443$ 	RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] </IfModule>

Еще вариант:

RewriteCond %{HTTP:X-HTTPS} !1 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Еще вариант:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /(.*) HTTP/ [NC] RewriteCond %{HTTPS} off [NC] RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]

Тут важно, что устанавливается 301 редирект, в сети посмотрел эту тему, кое-где его не используют, а он нужен!

Также, можно установить редирект в PHP, вместе с редиректом c .htaccess. Пригодится, если по какой-то причине редирект с апача слетит, чтобы PHP был на подстраховке…

## redirect с http на https add_action('init', 'http_to_https_redirect'); function http_to_https_redirect(){ 	if( is_ssl() ) return;  	if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) 		wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ), 301 ); 	else 		wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );  	exit; }

Изменение URL в контенте

В сети видел предложения заменять http на https прямо в базе данных. Я думаю это не лучшее решение, потому что возможно в будущем вы откажетесь от SSL и тогда нужно будет все менять обратно… Поэтому лучше делать замену на лету, таким кодом (он быстрый):

add_filter('the_content', 'replace_url_to_https', 30); function replace_url_to_https( $text ){ 	$text = preg_replace('~http(://(?:www.)?'. preg_quote($_SERVER['HTTP_HOST']) .')~', 'https1', $text ); 	return $text; }

Как вы, наверное, понимаете функцию replace_url_to_https() можно будет применить к любому тексту, где нужно заменить текст http://ваш-сайт.ru/* текст на текст https://ваш-сайт.ru/* текст. Она меняет все без разбора, будь то картинки или что-то еще, но только для URL относящихся к текущему домену…

Изменение URL других ссылок

Вообще WordPress автоматически подстраивается под https протокол текущей страницы и все ссылки должны измениться автоматом. Поэтому нет необходимости изменять даже протоколы в ссылках: URL сайта и URL WordPress (в настройках). Их протокол меняется налету…

Но если этого не произошло (протокол страницы https, но в ней есть ссылки http), то для смены протокола отдельных ссылок в WP есть функция set_url_scheme().

Пример:

echo set_url_scheme( 'http://site.ru/foo', 'https' ); // https://site.ru/foo

Корневая функция на основе которой ставиться протокол всех ссылок — это is_ssl(). Влияя на нее мы может влиять на все ссылки, при условии, что они жестко не прописаны в HTML, а выводятся через различные функции WordPress. Например, следующим кодом мы можем, жестко указать протокол https для всех ссылок на странице, даже если протокол страницы http:

$_SERVER[ 'HTTPS' ] = 'on'; // чтобы is_ssl() всегда возвращала true

Вызвать такой код нужно как можно раньше, до подключения плагинов. И наверное перед его вызовом нужно сделать какие-то проверки. Этот код — это просто пример…

Плагины

Как обычно, можно использовать плагины (я их не пробовал)…

Easy HTTPS Redirection — заглянул в код, вроде бы как раз то что вам нужно…

WordPress HTTPS (SSL) — вроде тоже хорош, правда не обновляется уже давно. Он, как я понял, заменяет все ссылки во всем HTML документе, работает как комбаин: много лишних операций, но может это и нужно, потому что удобно…

wp-kama.ru

Установка и настройка веб браузера Arachne для подключения к сети Интернет через модем и телефонную линию Dial-up

A : Установка веб браузера Arachne на диске, создаваемом в оперативной памяти — в этом случае веб браузер Arachne работает быстрее всего. Размер оперативной памяти должен позволять создать RAM диск объемом в 6 Мб и более. Что бы установить и настроить веб браузер Arachne для подключения к сети Интернет через модем и телефонную линию (Dial-up), необходимо несколько программ: 1. Веб браузер Arachne [ Скачать ] 2. Пакет с кириллицей кодировки KOI8-R koi8-r.apm [ Скачать ] 3. Пакет с кириллицей кодировки CP-1251 / Windows-1251 cp1251.apm [ Скачать ] 4. Драйвер мыши, например mouse.com [ Скачать ] 5. Архиваторы. Например, PKZIP [ Скачать ] и PKUNZIP [ Скачать ] 6. В случае, если будет использоваться не MS-DOS 6.0+, QEMM97 [ Скачать ] 7. В случае, если будет использоваться не MS-DOS 6.0+, TDSK [ Скачать ] Установка и настройка веб браузера Arachne по шагам: 1. В оперативной памяти создать диск. Какая именно буква будет назначена ему операционной системой получится из расчета, что A: и B: пойдут для floppy дисководов (даже если он один, то все равно зарезервированы будут две буквы), C: для первого активного основного раздела на первом жестком диске; если есть еще диски, то будут использоваться последовательно столько букв, что бы назвать их всех. Если при этом нет устройств, установленных через DRIVER.SYS или аналогичные драйверы, то следующая буква будет относиться к RAM-диску. Что бы убедиться наверняка, можно, после добавления соответствующей строки в CONFIG.SYS (См. ниже) для создания RAM-диска, например, перезагрузить компьютер и опытным путем проверить под какой буквой находится RAM-диск. В рассматриваемом случае, это E: В зависимости от объема оперативной памяти нужно решить, сколько мегабайт можно выделить для RAM-диска. В принципе, чем больше, тем лучше. Так как, например, кэш браузера при продолжительном и интенсивном использовании в рамках сессии будет разрастаться в объеме. В данном примере объем RAM-диска назначается в 12 000 Кб. Для драйвера MS-DOS RAMDRIVE.SYS верхний предел, это 32 767 Кб, а для TDSK — 64 Мб. Что бы создать такой диск, нужно где-нибудь в средней части файла CONFIG.SYS прописать следующее: DEVICE=C:DOSRAMDRIVE.SYS 12000 512 512 /E 2. Создать папку, например C:DRIVERS, куда поместить драйвер мыши, например mouse.com. 3. В файл AUTOEXEC.BAT добавить строку, которая будет запускать драйвер мыши. В ней указать полный пусть к драйверу; может быть любой: LH C:DRIVERSMOUSE.COM 4. Запустить MemMaker или OPTIMIZE из QEMM97, что бы оптимизировать обращение с базовой памятью. Если MemMaker, то на все предложения можно просто ENTER — MemMaker всё сделает сам. Компьютер перезагрузится несколько раз, каждый раз будет запускаться MemMaker — опять ничего кроме ENTER можно не делать. Если используется QEMM97 ( конкретно приложение OPTIMIZE ), тоже будет несколько перезагрузок и во всех случаях тоже можно только ENTER. 5. Начать установку веб браузера Arachne на RAM-диск, в рассматриваемом примере, это диск E: A195GPL.EXE Что бы продолжить установку, нажать Y Нажать N, что бы ввести нужный путь к папке, куда будет установлен веб браузер Arachne. Ввести нужный путь к папке, куда будет установлен веб браузер Arachne. В рассматриваемом примере, это E:ARACHNE.

www.kompx.com

Как сделать редирект  с https на http?

Решение 1

 

Делаем редирект на http с помощью .htaccess

Замечание Перечисленные ниже варианты предназначены для серверов Linux.

Пояснения для всех последующих вариантов Редактируем или создаём, если его нет, файл .htaccess в корневой папке вашего сайта, и добавляем сразу после
RewriteEngine On
один из нижеперечисленных вариантов, при этом не забыв изменить site.ru на URL вашего сайта.

Вариант 1
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Вариант 2
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

Вариант 3
RewriteCond %{HTTPS} =on
RewriteRule ^.*$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Вариант 4
RewriteCond %{SERVER_PORT} 443
RewriteRule ^.*$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Вариант 5
RewriteCond %{HTTPS} =on
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}

Вариант 6
RewriteCond %{HTTP:SSL} =1 [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,L]

Вариант 7
RewriteCond %{HTTP_HOST} !^site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Вариант 8
RewriteCond %{HTTP:SSL} =1 [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [L,R=301]

Вариант 9
RewriteCond %{HTTP:X-Forwarded-Proto} =https
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Вариант 10
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{ENV:HTTPS} =on
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Попробуем ещё вариант — вместо %{HTTPS} указать %{ENV:HTTPS}

Вариант 11
RewriteCond %{ENV:HTTPS} on
RewriteRule ^.*$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Вариант 12
RewriteCond %{ENV:HTTPS} On
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}

Замечание Если не работает, то можно попробовать поместить, указанные выше строки, в выражение IfModule.

 

ВАЖНОПри открытии сайта, Сначала браузер проводит проверку наличия SSL-сертификата и уже затем срабатывает редирект. Другими словами, если на сайте нет SSL-сертификата, то посетители сначала увидят предупреждение браузера о незащищённом контенте, и уже затем сработает редирект на http ….

ЗамечаниеОбычно, при открытии сайта, Сначала браузер, как правило, открывает версию 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-sait.ru)!

 

Идея: поставить передресацию с https на http на найденном https сайте https-sait.ru

13 Решение: создаем в корне этого сайта в файле htaccess правила типа условное выражение такого вида:

#
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.sait.ru$ [NC]
RewriteRule ^(.*)$ http://www.sait.ru/$1 [R=301,L]
#
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^sait2.ru$ [NC]
RewriteRule ^(.*)$ http://sait2.ru/$1 [R=301,L]
#
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^sait3.ru$ [NC]
RewriteRule ^(.*)$ http://sait3.ru/$1 [R=301,L] # и так далее... для одного сайта sait.ru или всех остальных http сайтов (sait2.ru, sait3.ru) , которые есть на вашем хостинге.

Пробуем, проверяем.

Подводим итог.

Другими словами, для того, чтобы сделать редирект с https на http вашего сайта sait.ru, вам потребуется найти и открыть https-sait.ru, отредактировать там .htaccess файл, прописав правила аналогичные пункту 13 для каждого вашего сайта: sait 1, 2, 3.ru

Вот такие странности панели ISP Manager ….

Почему это происходит?

Отступление

одлодл

 

 

 

Решение 3

Замечание Предлагаемое решение работает на серверах с NginX.

Если у вас сервер с nginx, тогда делаем переадресацию в его настройках

 

Вариант 3.1

    server {   server_name site.ru;   listen ip:443 ssl;   # пути к сертификату   ssl on;   expires max;   return 301 http://site.ru$request_uri;  }  

Указав, вместо ip — ваш реальный IP, вместо site.ru — URL вашего сайта и вместо # пути к сертификату — реальный путь. Сохраняем и перегружаем сервер

Модифицированный вариант:

Вариант 3.2

   server {   server_name site.ru;  	return 301 http://$server_name$request_uri;    listen ip:443 ssl;   # пути к сертификату   ssl on;   expires max;   return 301 http://site.ru$request_uri;  }  

находим и удаляем там же строку
add_header Strict-Transport-Security "max-age=31536000;";

Если что то не работает, перезагружаем nginx и смотрим ошибки, которые находятся в /var/log/nginx/error.log

Замечание Если нужно, чтобы сайт открывался как по http, так и по протоколу https, то вышеуказанные варианты приведут к зацикливанию ….

Нужно же, чтобы сайт открывался как по http, так и по https. Если прописывать редирект в nginx на http

Вариант 3.2

Некоторые, устав бороться с NginX, сносят его и ставят классический редирект

Решение 3

Сделать редирект с https на http в файле .htaccess

Решение даётся здесь

https://moisait.ru

 

Решение 1.2

 

Решение 2

joom-la-la.ru

Добрый день. Не могу найти 301 редирект со страниц без слеша на слеш, ваши варианты тоже не подошли, можете помочь? Ниже предоставляю свой файл .htaccess

AddDefaultCharset UTF-8
DirectoryIndex index.php

Options All -Indexes

Header set Cache-Control «max-age=43200»

Header set Cache-Control «max-age=604800»

Header set Cache-Control «max-age=2592000»

Header unset Cache-Control

ExpiresActive On
ExpiresDefault «access plus 5 seconds»
ExpiresByType image/x-icon «access plus 2592000 seconds»
ExpiresByType image/jpeg «access plus 2592000 seconds»
ExpiresByType image/png «access plus 2592000 seconds»
ExpiresByType image/gif «access plus 2592000 seconds»
ExpiresByType application/x-shockwave-flash «access plus 2592000 seconds»
ExpiresByType text/css «access plus 604800 seconds»
ExpiresByType text/javascript «access plus 604800 seconds»
ExpiresByType application/javascript «access plus 604800 seconds»
ExpiresByType application/x-javascript «access plus 604800 seconds»
ExpiresByType text/html «access plus 43200 seconds»
ExpiresByType application/xhtml+xml «access plus 600 seconds»

php_value post_max_size 80M
php_value upload_max_filesize 50M

ErrorDocument 404 http://mir-gardin.com.ua/404.php
RewriteEngine on

RewriteCond %{HTTP_HOST} ^mir-gardin.com.ua$ [NC]

RewriteBase /
RewriteRule ^.htaccess$ — [F]

RewriteRule ^admin/$ /admin/index.php [L]
RewriteRule ^admin/promotion$ /admin/promotion.php [L]
RewriteRule ^admin/promotion/$ /admin/promotion.php [L]
RewriteRule ^admin/services$ /admin/services.php [L]
RewriteRule ^admin/services/$ /admin/services.php [L]
RewriteRule ^admin/main$ /admin/main.php [L]
RewriteRule ^admin/main/$ /admin/main.php [L]
RewriteRule ^admin/catalog$ /admin/catalog.php [L]
RewriteRule ^admin/catalog/$ /admin/catalog.php [L]
RewriteRule ^admin/contacts$ /admin/contacts.php [L]
RewriteRule ^admin/contacts/$ /admin/contacts.php [L]
RewriteRule ^admin/news$ /admin/news.php [L]
RewriteRule ^admin/news/$ /admin/news.php [L]
RewriteRule ^admin/about_us$ /admin/about_us.php [L]
RewriteRule ^admin/about_us/$ /admin/about_us.php [L]
RewriteRule ^admin/pay$ /admin/pay.php [L]
RewriteRule ^admin/pay/$ /admin/pay.php [L]
RewriteRule ^admin/reviews$ /admin/reviews.php [L]
RewriteRule ^admin/reviews/$ /admin/reviews.php [L]
RewriteRule ^admin/our_works$ /admin/faq.php [L]
RewriteRule ^admin/our_works/$ /admin/faq.php [L]
RewriteRule ^admin/producers$ /admin/producers.php [L]
RewriteRule ^admin/producers/$ /admin/producers.php [L]
RewriteRule ^admin/fotogallery$ /admin/fotogallery.php [L]
RewriteRule ^admin/fotogallery/$ /admin/fotogallery.php [L]
RewriteRule ^admin/header$ /admin/header.php [L]
RewriteRule ^admin/header/$ /admin/header.php [L]
RewriteRule ^admin/menu$ /admin/menu.php [L]
RewriteRule ^admin/menu/$ /admin/menu.php [L]
RewriteRule ^admin/options_lr$ /admin/options_lr.php [L]
RewriteRule ^admin/options_lr/$ /admin/options_lr.php [L]
RewriteRule ^admin/modules$ /admin/modules.php [L]
RewriteRule ^admin/modules/$ /admin/modules.php [L]
RewriteRule ^admin/footer$ /admin/footer.php [L]
RewriteRule ^admin/footer/$ /admin/footer.php [L]
RewriteRule ^admin/per_page$ /admin/per_page.php [L]
RewriteRule ^admin/per_page/$ /admin/per_page.php [L]
RewriteRule ^admin/rights$ /admin/rights.php [L]
RewriteRule ^admin/rights$ /admin/rights.php [L]
RewriteRule ^admin/user_data$ /admin/user_data.php [L]
RewriteRule ^admin/user_data/$ /admin/user_data.php [L]
RewriteRule ^admin/user_files$ /admin/user_files.php [L]
RewriteRule ^admin/user_files/$ /admin/user_files.php [L]
RewriteRule ^admin/meta$ /admin/meta.php [L]
RewriteRule ^admin/meta/$ /admin/meta.php [L]
RewriteRule ^admin/fav$ /admin/fav.php [L]
RewriteRule ^admin/fav/$ /admin/fav.php [L]
RewriteRule ^admin/files$ /admin/files.php [L]
RewriteRule ^admin/files/$ /admin/files.php [L]
RewriteRule ^admin/articles$ /admin/articles.php [L]
RewriteRule ^admin/articles/$ /admin/articles.php [L]

RewriteRule ^$ /index.php [L]
#RewriteRule ^404$ /404.php [L]

RewriteRule ^registration$ /registration.php [L]
RewriteRule ^registration/$ /registration.php [L]
RewriteRule ^userpanel$ /userpanel.php [L]
RewriteRule ^userpanel/$ /userpanel.php [L]
RewriteRule ^forgot_password$ /forgot_password.php [L]
RewriteRule ^forgot_password/$ /forgot_password.php [L]

RewriteRule ^feedback$ /feedback.php [L]
RewriteRule ^feedback/$ /feedback.php [L]

RewriteRule ^about_us$ /about.php [L]
RewriteRule ^about_us/$ /about.php [L]

RewriteRule ^articles$ /articles.php?page=1 [L]
RewriteRule ^articles/$ /articles.php?page=1 [L]
RewriteRule ^articles/page$ /articles.php?page=1 [L]
RewriteRule ^articles/page/$ /articles.php?page=1 [L]
RewriteRule ^articles/page/([0-9]+)/? /articles.php?page=$1 [L]

RewriteRule ^articles/topic/(.*)/? /view_article.php?id=$1 [L]

RewriteRule ^cart$ /cart.php [L]
RewriteRule ^cart/$ /cart.php [L]

RewriteRule ^catalog$ /catalog.php?page=1 [L]
RewriteRule ^catalog/$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page/$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page/([0-9]+)/? /catalog.php?page=$1 [L]

RewriteRule ^catalog/category/(.*)/page/([0-9]+)/? /catalog_by_cats.php?cat=$1&page=$2 [L]
RewriteRule ^catalog/category/(.*)? /catalog_by_cats.php?cat=$1&page=1 [L]

RewriteRule ^catalog/subcategory/(.*)/page/([0-9]+)/? /catalog_by_subcats.php?cat=$1&page=$2 [L]
RewriteRule ^catalog/subcategory/(.*)? /catalog_by_subcats.php?cat=$1&page=1 [L]

RewriteRule ^catalog/view/(.*)/? /view_item.php?id=$1 [L]

RewriteRule ^catalog/view_all/(.*)/view/(.*)/? /view_all.php?type=$1&cat=$2 [L]
RewriteRule ^catalog/view_all/(.*)? /view_all.php?type=all&cat=0 [L]

RewriteRule ^contacts$ /contacts.php [L]
RewriteRule ^contacts/$ /contacts.php [L]

RewriteRule ^our_works$ /faq.php [L]
RewriteRule ^our_works/$ /faq.php [L]

RewriteRule ^news$ /news.php?page=1 [L]
RewriteRule ^news/$ /news.php?page=1 [L]
RewriteRule ^news/page$ /news.php?page=1 [L]
RewriteRule ^news/page/$ /news.php?page=1 [L]
RewriteRule ^news/page/([0-9]+)/? /news.php?page=$1 [L]

RewriteRule ^news/topic/(.*)/? /view_news.php?id=$1 [L]

RewriteRule ^pay$ /pay.php [L]
RewriteRule ^pay/$ /pay.php [L]

RewriteRule ^producers/(.*)/page/([0-9]+)/? /producers.php?id=$1&page=$2 [L]
RewriteRule ^producers/(.*)? /producers.php?id=$1&page=1 [L]
RewriteRule ^producers$ /producers.php [L]
RewriteRule ^producers/$ /producers.php [L]

RewriteRule ^reviews$ /reviews.php [L]
RewriteRule ^reviews/$ /reviews.php [L]

RewriteRule ^search/(.*)/? /search.php?word=$1 [L]

RewriteRule ^services$ /services.php [L]
RewriteRule ^services/$ /services.php [L]

RewriteRule ^thanks$ /thanks.php [L]
RewriteRule ^thanks/$ /thanks.php [L]

RewriteCond %{HTTP_HOST} ^www.mir-gardin.com.ua$ [NC]
RewriteRule ^(.*)$ http://mir-gardin.com.ua/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://mir-gardin.com.ua/ [R=301,L]

web-optimizator.com

Переадресация на https через htaccess

Для того, что бы настроить редирект с http на https, вам нужно, при помощи программы Notepad++, в корне вашего сайта открыть файл .htaccess, и далее, в самом начале этого файла, прописать один из нескольких вариантов перенаправления.

Как пользоваться Notepad++ и настроить для него FTP-подключение я рассказывала в одной из прошлых статей, с которой вы можете ознакомиться по этой ссылке:

Редактирование файлов сайта в Notepad++

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

Варианты написания серверного редиректа для HTTPS

Мне удалось найти семь основных вариантов, которые используют для настройки редиректа для HTTPS протокола:

Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

Вариант 7

Вариант 8

После вставки одного из этих вариантов в файл .htaccess, сохраняете изменения.

Проверка редиректа

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

Так же, вы можете воспользоваться одним из онлайн-сервисов, которые позволяют просмотреть правильность выполнения редиректа. Например, Redirect Checker. Для выполнения проверки вам нужно:

  1. 1.Перейти на страницу онлайн-сервиса по этой ссылке
  2. 2.В поле для ввода указать адрес, с которого должно осуществляться перенаправление в формате http://имя-сайта.ру .
  3. 3.А затем нажать на кнопку «Analyse».

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

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

Так же, вы можете проверить правильность выполнения редиректа для конкретной поисковой системы. Для этого, перед нажатием на кнопку «Analyse», нужно выбрать из выпадающего списка название нужного поискового робота:

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

Так же, вы можете назначить 301 редирект сразу после получения и установки с SSL-сертификата, но в этом случае вы рискуете тем, что многие страницы вашего сайта могут на время выпасть из поисковой выдачи.

Я надеюсь, что данная статья поможет вам правильно настроить редирект для HTTPS –протокола и осуществить переход на SSL-сертификат с наименьшими потерями. Если данная статья вам понравилась, делайте репост в социальные сети и подписывайтесь на мою рассылку. Желаю вам успешного переезда и до встречи в следующих статьях.

С уважением Юлия Гусарь

impuls-web.ru

Уже ни для кого не секрет, что Гугл и Яндекс начинают выдавать «бонусы» сайтам, у которых установлен сертификат безопасности SSL, и которые начали работать через протокол https. И чтобы корректно настроить редирект с http на https, нужно прописать в .htaccess пару строчек.

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

Вариант 1

  RewriteCond %{HTTPS} =off   RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]  

Вариант 2

  RewriteCond %{SERVER_PORT} !^443$  RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]  

Вариант 3

  RewriteCond %{ENV:HTTPS} !on  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  

Вариант 4

  RewriteCond %{HTTP:X-HTTPS} !1  RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]  

Вариант 5

  RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'  RewriteRule ^(.*)$ https://www.domain.com/$1 [L] #не забудьте заменить на ваш домен  

Вариант 6

  RewriteCond %{HTTP:X-Forwarded-Protocol} !=https  RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]  

Вариант 7. На одну строчку больше =)

  RewriteCond %{HTTP:X-Forwarded-Proto} !https  RewriteCond %{HTTPS} off  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]  

Каждый из приведенных выше вариантов нужно прописывать сразу после включения mod_rewrite, а именно — после директивы RewriteEngine On.

alittlebit.ru


You May Also Like

About the Author: admind

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.