Если вы решили настроить https протокол в 4 версии панели ISP Manager то с большой вероятностью вы столкнетесь с проблемой циклической пере адресации: если клиент хочет, чтобы его сайт открывался исключительно по 443 порту (https), он не может этого добиться без помощи технической поддержки хостинг провайдера, а техническая поддержка хостинг провайдера в свою очередь не может этого добиться, не прибегая к ручному изменению конфига nginx.
Всё это происходит из-за того, что ISP Manager 4 изначально создаёт только одну секцию server для домена, поэтому, такой код в .htaccess:
RewriteCond %{SERVER_PORT} ^80$ [OR] RewriteCond %{HTTP} =on RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]</pre>
В ISP Manager 4 server в конфигурационном файле nginx для домена создается одна секция для 443 и 80 порта. Поэтому редирект «зацикливается».
По заявлению разработчиков ISP Manager в пятой версии панели эта проблема решена.
Рассмотрим варианты пере-адресации http версии сайта на https.
Редирект можно осуществить с помощью файла .htaccess который находится в корне Вашего сайта.
Если по какой-то причине такого файла там нет, то просто создайте его самостоятельно.
Ниже приводятся несколько вариантов записей, которые нужно добавить в .htaccess:
1.
RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]</pre>
2. или:
RewriteEngine On RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
3. Если при использовании вариантов выше получаем ошибку «циклическая пере-адресация» , то пробуем:
RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Тажке можно выполнить пере-адресацию одного, конкретного файла. Например forhttps.php:
RewriteEngine On RewriteCond %{HTTPS} =off RewriteCond %{REQUEST_URI} =/forhttps.php RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Или наоборот, нужно чтоб весь сайт, кроме одного файла(forhttp.php), перенаправляло на https:
RewriteEngine On RewriteCond %{HTTPS} =off RewriteCond %{REQUEST_URI} !^/forhttp.php RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Далее рассмотрим варианты пере-адресации с помощью веб-сервера nginx.
В nginx указываем следующую запись:
server_name <em>site_name.com</em>; server_name www.<em>site_name.com</em>; if ( $scheme = "http" ) { rewrite ^/(.*)$ https://$host/$1 permanent; }
Где site_name.com и www.site_name.com — варианты Вашего домена которые необходимо перенаправлять на защищенную HTTPS версию
в wordpress поменял адрес сайта с http на https после этого сайт стал не доступным, в админ wordpress так же не заходит. Цикличный редирект с http на https как исправить?
1) отключить редирект ( в .htaccess или в системе управления хостингом)
2) Найти причину неправильной переадресации ( может быть модуль для защиты входа в админку, может сам код редиректа и др.)
Удачи!
Здравствуйте, а как посмотреть есть сейчас циклическая переадресация или нет? Вы не могли бы посмотреть? Спасибо