2015-03-16 2 views
2

Я пытаюсь сделать это:Htaccess домен редиректа HTTPS, поддомен для HTTP и WWW к не-WWW

Принудит протокол HTTPS для моего основного домена.

http or https://www.domain.com -> https://domain.com 
http or https://domain.com -> https://domain.com 

Но не для субдоменов

http or https://www.subdomain.domain.com -> http://subdomain.domain.com 
http or https://subdomain.domain.com -> http://subdomain.domain.com 

И всегда снимающих WWW.

Теперь у меня есть, что:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Это перенаправляет WWW к не-WWW и HTTP к HTTPS, но не для поддоменов. Субдомен остается с www и https.

Благодаря

+1

Что вы подразумеваете под «ни одной работой для моей ситуации»? То, что вы хотите сделать, ничего особенного, есть существующие решения. Пожалуйста, разместите свои попытки и объясните, почему они не сработали для вас. Таким образом, мы можем вместе разработать то, что должно быть исправлено в ваших попытках. – arkascha

+0

Вы также хотели «объяснить, почему они не сработали для вас». Что он делает, чего он не делает? – arkascha

+0

Они работают для доменов, но не для поддоменов. – Devilquest

ответ

7

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

# for main domain 
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteRule^https://domain.com%{REQUEST_URI} [R=301,L,NE] 

# for sub domain 
RewriteCond %{HTTP_HOST} ^(www\.)?subdomain\.domain\.com$ [NC] 
RewriteCond %{HTTPS} on [OR] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteRule^http://subdomain.domain.com%{REQUEST_URI} [R=301,L,NE] 
1

Для того, чтобы получить комбинацию вы хотите. Вам нужно будет использовать свои домены.

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

RewriteCond %{HTTP_HOST} !^sub\.example\.com$ [NC] 
RewriteCond %{HTTP_HOST} !^example\.com$ [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 
0

Я также использовал следующее, и он отлично работал. Мне было трудно указать мои первичные домены www.domain.com и http://domain.com до https://domain.com

Большое спасибо; поскольку я пытался сделать это уже часами!

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteRule^https://domain.com%{REQUEST_URI} [R=301,L,NE] 
+0

Не работает для wordpress ... – David

Смежные вопросы