Редирект с 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 позволяют удалять как каталоги, так и

iOS
help2site
Как обновить прошивку на айпад

Существует много вариантов обновления прошивки iPad. Это устройство, работающее при помощи известной операционной системы названная как iOS, которая частенько доделывается работниками Apple. Прошивку можно обновить

Web-Дизайн
help2site
Как отобразить webform в всплывающем окне

Сегодня хочу рассказать о простом способе как в Drupal отобразить веб-форму (webform) в сплывающем окне (pop-up окно). Для реализации данной задачи нам потребуются модули webform

Web-Дизайн
help2site
Отличительные черты работы с CMS WordPress

Наиболее популярной сферой использования WordPress является создание блогов. Однако многие разработчики успешно используют эту систему для создания крупных сайтов и даже громадных интернет-магазинов. На сегодняшний

Web-Дизайн
help2site
Выпадающее главное меню в Drupal 7

В случае необходимости темизировать сайт на Drupal 7 на котором установлена тема которая не поддерживает опцию второго уровня для «Главное меню», и установка опции «Показать