2012-05-28 2 views
0

Я использую .htaccess для перенаправления всех запросов (кроме поддоменов) с HTTP на HTTPS. Этот код работает для меня просто отлично:.htaccess Переадресовать конкретный субдомен с HTTPS обратно на HTTP

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} !=m.example.com 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Однако, это не мешает пользователю вручную попытке доступа к субдомен с помощью HTTPS (The SSL, что я не покрывает поддоменов и показывает доверие ошибка при использовании для суб-домены).

Теперь я задаюсь:

1-Как я могу перенаправить все запросы HTTPS на SUBDOMAIN обратно HTTP?

2-Как я могу изменить этот код, чтобы динамически применять ограничения поддоменов других субдоменов (не только m.example.com)

+1

Я считаю, что SSL рукопожатия происходит до .htaccess правила обрабатываются (это подтверждают), так что ваш вопрос может быть просто спорный вопрос , – Ansari

ответ

1

1) Если сертификат не включает m.example.com, вы никогда не может отправить перенаправление, так как браузер откажется подключиться. Таким образом, нет никакого способа сделать это.

2) Итак, все, что вам нужно, это перенаправить голый домен на https. Для этого используйте:

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^example.com$ 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} 

I случае сертификат также включает в себя использование www.example.com

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(www.)?example.com$ 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} 
Смежные вопросы