2015-11-04 4 views
0

Некоторые версии Chrome автоматически добавляют https на мой сайт addres. Поэтому мне нужно перенаправить https на http, потому что у меня нет SSL-сертификата. Я стараюсь это, без результата:Невозможно перенаправить https для http

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteCond %{HTTP:X-Forwarded-Proto} =https 
    RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
</IfModule> 
+0

Вы находитесь за балансиром нагрузки? Также я не думаю, что Chrome это делает. Это был бы хаос для миллионов сайтов, это так. –

+1

Также это может помочь http://superuser.com/questions/565409/chrome-how-to-stop-redirect-from-http-to-https –

ответ

0

Возможное повторение этого вопроса: Nginx redirect to non-https address failes in Firefox. Хотя они так и не разобрались, чтобы узнать, почему это происходит с этим человеком, поэтому, надеюсь, мне повезет больше с вами.

Итак, прежде всего вы не можете перенаправить https на http до тех пор, пока соединение https не удастся - для чего требуется сертификат. Чтобы это было связано с огромной угрозой безопасности, и это не так, как работает https. Сначала выполняется соединение https, а затем доставляется контент поверх https. И перенаправление считается содержимым.

Во-вторых, вам нужно выяснить, почему Chrome переадресовывает https. Потому что, в зависимости от того, что происходит, даже если вы можете перенаправить обратно на http, если у вас есть сертификат, вы можете ввести рекурсивный цикл. Я предлагаю открыть Chrome, нажав F12, чтобы открыть инструменты разработчика, перейдя на вкладку «Сеть», нажав «сохранить журнал», очистив вкладку «Сеть» и нажав «Сохранить журнал», а затем загрузив страницу через http и наблюдая за перенаправлением. Если это перенаправление 301 или 302, то это ваш сервер делает это. Если это перенаправление 307, то это связано с HSTS. И это что-то еще, это проблема с внешним интерфейсом (т. Е. Javascript на странице).