Я пытаюсь поймать любой трафик https в начало моего сайта так:
https://www.domain.com
перенаправляется на:
http://www.domain.com
Однако другие субдомены необходимо перенаправить в другое место. По большей части это все работает, кроме перенаправления https -> http. Вот мой файл .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-адреса вашему сайту. Например, если у вас есть сайт по адресу:
http://www.yourdomain.com
Вы можете получить доступ к той же учетной записи контента / хостинга через https, используя:
https://server100.securedomain.com/yourdomain.com
Может быть так, потому что, когда я набираю https в браузере, мне подают общий сертификат, и потому что он не соответствует имени домена, которое я ввел, я получаю предупреждение безопасности о недоверенном сертификате останавливает перенаправление?
РЕДАКТИРОВАТЬ 2
Глядя на заголовки сервера, я думаю, что я прав с моим предположением выше. Сервер возвращается:
The host name in the certificate is invalid or does not match
Остановит ли это перенаправление?