Если вы или кто то другой перевёл на https: один из сайтов, на виртуальном или VDS хостинге, то у всех остальных HTTP сайтов сразу возникает проблема - современные браузеры начинают открывать их не по протоколу http а по https.
А поисковик Google на вашем http сайте начинает, в первую очередь искать https страницы .... и находит их на других сайтах, находящися на этом хостинге, и индексирует! ( подробнее здесь )
Иногда потребность в возврате с https на протокол http вызвана тем, что быстроробот Гугла в несколько раз реже заходит на "безопасный сайт", и не видит обновлений контента.
Замечание Перечисленные ниже варианты предназначены для серверов 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"
В частности этим грешат серверы и VDS с панелью ISP Manager 5 ( на других панелях управления, например cPanel, с Lunix на этом же сайте переадресация работает! )
Открываем и внимательно смотрим ваш сайт (для примера 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 ....
Отступление
одлодл
Замечание Предлагаемое решение работает на серверах с 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, сносят его и ставят классический редирект
Новые решения ищё будут !
Проект Joom-la-la предназначен для начинающих пользователей Системы управления сайтами Joomla; программистов, администраторов. Мы хотим поделиться с вами своими наработками и примерами.
Это один из сотен сайтов, сделанных нами в рамках бренда Petrovich Group. Надеемся быть вам полезными и ждём ваших комментариев
Добавить комментарий