Редирект с http на https, .htaccess, циклическая переадресация

Если вы решили настроить 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]
				
			

Приводит к циклической переадресации.

В ISP Manager 4  server в конфигурационном файле nginx для домена создается одна секция для 443 и 80 порта. Поэтому редирект “зацикливается”.
По заявлению разработчиков ISP Manager в пятой версии панели эта проблема решена.

Рассмотрим варианты пере-адресации http версии сайта на https

Редирект можно осуществить с помощью файла .htaccess который находится в корне Вашего сайта.
Если по какой-то причине такого файла там нет, то просто создайте его самостоятельно.

Ниже приводятся несколько вариантов записей, которые нужно добавить в .htaccess:

				
					RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
 
или:

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

Если при использовании вариантов выше получаем ошибку “циклическая переадресация” , то пробуем:

				
					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 версию

  1. отключить редирект ( в .htaccess или в системе управления хостингом)
  2. Найти причину неправильной переадресации ( может быть модуль для защиты входа в админку, может сам код редиректа и др.)
Свежие записи
Команда RD

Команда RD и RMDIR позволяют удалять как каталоги, так и

Оборудование
help2site
Материнская плата

Эта плата, та основа с помощью которой объединяются и совместно функционируют остальные комплектующие (части) компьютера. Слот PCI — используется для подключения различных плат, таких как

Программы
help2site
10 необычных приложений для обработки фото

В Google Play можно найти сотни приложений, позволяющих редактировать фотографии на любой вкус и цвет. Однако современное фотоискусство часто выходит за рамки привычного, заставляя человека

Windows
help2site
Активация терминального сервера Windows Server 2003/2008/2008 R2

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

iOS
help2site
Бесплатный конвертер видео для iPad

Новые популярные новинки фильмов выходят каждый день в свет и мы ждем пока фильм появится для iPad. С программой конвертер Видео для Ipad , можно сделать

Web-Дизайн
help2site
Switch. Условные конструкции в PHP. Часть 2.

В первой части статьи про условия в PHP мы разбирались про синтаксис и примеры использования конструкции if…else…. В этой заметке мы продолжим рассматривать управляющие условные