2014-11-11 3 views
0

У меня есть следующие правила на моем сайте:.htaccess перенаправить субдомен перед форсированием HTTPS?

Проблема у меня в настоящее время является то, что, когда кто-то идет http://user.domain.com, они получают перенаправлены https://user.domain.com, который затем небезопасно, а не к https://www.domain.com/file.php?user=user.

Как исправить это?

Вот .htaccess содержание:

RewriteEngine On 

RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
RewriteRule ^.*$ - [L] 
RewriteCond %{HTTP_HOST} ^(.*?)\.(www\.)?domain\.com$ [NC] 
RewriteRule ^.*$ https://www.domain.com/file.php?user_id=%1 [L] 

Я также попытался изменить% {HTTP_HOST} до {% HTTPS_HOST} и в конечном итоге с той же проблемой.

+0

'они попадают в' где? – Cheery

+0

Вы пробовали переупорядочить правила? Перенаправить на страницу сначала, а затем на страницу https страницы? Я не могу проверить это прямо сейчас, поэтому никаких гарантий! (Вы также можете перенаправить на страницу в .htaccess, а затем использовать PHP для перезагрузки в качестве HTTPS) –

+0

Исправлено мое сообщение, чтобы включить туда, куда они перенаправляются. И да, я попытался поставить HTTPS после второго правила, но это привело к той же проблеме. – user1227914

ответ

1

Try с:

RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
RewriteRule ^.* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP_HOST} ^(.*?)\.(www\.)?domain\.com$ [NC] 
RewriteRule ^.*$ https://www.domain.com/file.php?user_id=%1 [L] 
0

Вы можете использовать эти правила:

RewriteEngine On 

RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC] 
RewriteRule^/file.php?user_id=%1 [L,QSA] 
Смежные вопросы