Я пытаюсь поймать любой HTTPS трафик на фронт моего сайта так:.htaccess перенаправления HTTPS на HTTP не работает
https://www.domain.com
перенаправляется на:
http://www.domain.com
Однако другие поддомены должны перенаправляться в другое место. По большей части это все работает, кроме https -> http redirection. Вот мой файл .htaccess в данный момент:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond "%{HTTP_HOST}" !^www.* [NC]
RewriteCond "%{HTTP_HOST}" ^([^\.]+).*$
RewriteRule ^(.*)$ https://secure.domain.com/a/login/%1 [L,R=301]
Казалось бы, что этот бит:
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
не работает, как я бы себе представить. На самом деле это, похоже, не перенаправляет вообще.
В другом подкаталоге у меня наоборот в эффекте, который работает отлично:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
так что мое мышление противоположные должны были сделать эту работу, но, казалось бы, нет.
Любые мысли кто-нибудь?
EDIT
Я имею в виду, что это может иметь что-то делать с тем, что на сервере есть сертификат SSL, который провайдер использует для предоставления родового HTTPS адреса вашего сайта. Например, если у вас есть сайт по адресу:
Вы можете получить доступ и тот же контент/хостинг аккаунт через HTTPS с помощью:
https://server100.securedomain.com/yourdomain.com
Может быть, потому что, когда я печатаю https в браузере Я получаю общий сертификат и потому, что он не совпадает с именем домена, которое я ввел, я получаю предупреждение о безопасности с ненадежным сертификатом, который останавливает перенаправление?
EDIT 2
Глядя на сервере заголовков, я думаю, я правильно с моим предположением. Сервер возвращается:
The host name in the certificate is invalid or does not match
Будет ли это остановить перенаправление?
true ... для тех, у кого есть сервер без сертификата ssl, необходимо принять предупреждение на веб-странице. Тогда следующий код будет перенаправлять с HTTPS на HTTP:
'RewriteCond% {HTTP_HOST} хуг \ .co.uk $ [NC]'
\t 'RewriteCond% {HTTPS} on'
\t' RewriteRule^([^/] +)? $ http: //% {HTTP_HOST}/$ 1 [R = 301, L] '
– Invincible
Так что нет способа избежать экрана предупреждения? Невозможно ли заставить HTTP всегда для всех страниц и избегать страницы предупреждения? – Robbiegod