2015-05-14 164 views
0

我有一個RewriteRule重定向我的主域名爲https://www.sta-games.com,它工作正常,但是當我嘗試訪問我的子域名http://files.sta-games.com時,它重定向到我的主域。htaccess http to https與www。沒有重定向的子域名

我的繼承人重定向規則

#HTTPS Redirection 
RewriteCond %{HTTPS} off 

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

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

任何人都可以看到這個問題?

+1

第二個條件和規則聲明,如果主機不以'www..'開始,則將執行到https:// www.'域的重定向。 – showdev

+0

你的規則看起來不錯。在Chrome開發工具中測試這個,看看你得到了什麼重定向。 – anubhava

+0

我試過了,但它的域名變成了「https:// www.files.sta-games.com」,頁面顯示我的主頁 – dakotaeggers3

回答

0

您需要調整您的規則,以便它查找整個域而不僅僅是它的一部分。現在你只是在尋找www的缺席。所以這就是您的子域名重定向的原因。

首先,您需要結合您的規則,因爲如果https不在,並且沒有www,您似乎想要重定向,那麼請制定該規則。然後在規則中使用您的實際域名。將example.com替換爲您的域名。這應該可以解決您的問題。

#HTTPS Redirection 
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com 
RewriteRule ^(.*)$ https://www.example.com%{REQUEST_URI} [L,R=301] 
0

有除主域的所有域的額外的跳過條件:清除瀏覽器緩存後

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

測試此。

相關問題