2016-06-21 113 views
2

堆棧溢出有許多類似的解決方案,如htaccess http to https with www. Without redirecting sub domain.htaccess HTTPS主域和通配符HTTP子域+所有非WWW

我需要什麼,卻是:

  • 主域HTTPS +非www
  • 通配符HTTP的所有子域,而不是加入了一個又一個。

我正在運行一個WordPress多站點網站,並且沒有通配符SSL。

我使用的時刻如下:

非www

RewriteEngine on 
    RewriteBase/
    RewriteCond %{HTTP_HOST} www.(.*)$ [NC] 
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

非www和非HTTPS子域

RewriteEngine On 
    RewriteCond %{HTTPS} off 

    RewriteCond %{HTTP_HOST} !=subdomain1.main.com 
    RewriteCond %{HTTP_HOST} !=subdomain2.main.com 
    RewriteCond %{HTTP_HOST} !=subdomain3.main.com 
    RewriteCond %{HTTP_HOST} !=subdomain4.main.com 

SSL

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

回答

1

這是你想要的嗎?

RewriteEngine On 
RewriteBase/

# www is redirected to base domain 
RewriteCond %{HTTP_HOST} ^www\.([^\.]+\.[^\.]+)$ 
RewriteRule ^(.*)$ https://%1/$1 [L,R=301] 

# base domain should use HTTPS 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^[^\.]+\.[^\.]+$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301] 

# other domain should use HTTP 
RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} !^[^\.]+\.[^\.]+$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301] 
+0

嗨弗洛裏安,謝謝!不,它不起作用。當我添加它時,即使WWW被刪除,所有內容都將轉到HTTPS。 –

+0

我忘了在上面的評論中標記你。 –

相關問題