2017-02-28 177 views
1

我試圖在我的服務器上從測試環境開始測試SSL。規則似乎在我的本地工作,但是當我承諾我的測試服務器時,我得到「太多重定向」錯誤。使用mod_rewrite將.htaccess中的特定子域重定向到https

下面是有關重寫條件/規則,我有:

# Send non-www to www 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

# Send test.mysite.com to https 
RewriteCond %{HTTPS} off 
#RewriteCond %{HTTP_HOST} ^(.+)\.test\.mysite\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^www\.test\.mysite\.com$ [NC] 
RewriteRule^https://www.test.mysite.com%{REQUEST_URI} [L,R=301] 

的目標是發送www.test.mysite.com和test.mysite.com既https://www.test.mysite.com

+0

這些規則對我來說看起來不錯......也許有些其他規則在這裏干擾?真正的服務器配置或其他動態配置文件中的規則(意外)將_back_重定向到http? – arkascha

+0

如果您找不到任何東西,那麼我建議您啓用重寫日誌記錄(請參閱重寫模塊的官方文檔)。它允許您檢查重寫引擎中實際進行的每個步驟。 – arkascha

回答

0

我已經取消註釋行:

RewriteCond %{HTTP_HOST} ^(.+)\.test\.mysite\.com$ [NC] 

而且它似乎現在在私人瀏覽器正在工作。這是否使www行不必要?

RewriteCond %{HTTP_HOST} ^www\.test\.mysite\.com$ [NC] 
相關問題