2016-02-09 26 views
1

我有一個C-Panel服務器上的網站和若干子域,並想實現以下功能:強制HTTPS用於主域,而不是子域

力HTTPS和WWW的所有流量example.com的所有流量到我的主網站 - >https://www.example.com/what-ever-page-or-directory

我也有一個sub.example.com通過C-面板(未重新定向),其文檔根目錄的子域設置/ public_html/sub並且這個子域沒有SSL。我試圖把在下面的.htaccess代碼:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

其中工程重定向主站點上的所有流量,但是當我嘗試訪問我的子域名,http://sub.example.com,我得到一個重定向錯誤說此網頁有重定向循環

在此先感謝您的幫助!我發現了類似的帖子,但沒有處理我的具體問題。我不擅長HTACCESS指令,重定向錯誤會引發我循環。再次感謝!

回答

1

嘗試:

RewriteEngine On 

#Exclude subdomain 
RewriteCond %{HTTP_HOST} !^sub.domain.com$ 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

要排除多個子域,你可以使用多個RewriteConds:

RewriteCond %{HTTP_HOST} !^foo.domain.com$ 
RewriteCond %{HTTP_HOST} !^bar.domain.com$ 

或僅有1線狀圖案:

RewriteCond %{HTTP_HOST} !^(foo|bar).domain.com$ 
+1

真棒,謝謝@starkeen。這工作!你知道如果我將來需要排除多個子域嗎?再次感謝 – Invex09

+0

@ Invex09非常歡迎您!乾杯! – starkeen