2016-04-26 70 views
1

閱讀所有有關.htaccess和重定向的相關答案,以及一些使用.htaccess重寫條件和規則的實驗後,我的問題依然存在。.htaccess將規則重定向到www和htpps,但排除子域

我設法強制www和https爲我的Magento網站。以下是我目前所面對的:

RewriteCond %{HTTPS} off 
RewriteRule .* https://www.example.com%{REQUEST_URI} [L,R=301] 

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

public_html/test/創建子域test.example.com和測試環境後,我想從上面的規則中排除,因爲子站點既沒有一個HTTPS的WWW。

我試圖把這個異常放在上面的規則中,但沒有成功。

RewriteCond %{HTTP_HOST} !^test\.example\.com$ 

例如,當我輸入http://test.example.com/admin/進入Magento管理,它重定向我https://www.example.com/admin/我一定要還可以編輯public_html/test/.htaccess file

預先感謝您

回答

0

是的,這是因爲你的規則,第二規則檢查的發生,如果主機值不以WWW重定向主機開始www.example.com這個規則也使用www將任何非www的http主機重定向到主域。

爲了解決這個問題,你可以使用一個單一的規則,以HTTP重定向到https:WWW不包括子域

RewriteEngine on 

RewriteCond %{HTTP_HOST} !^test\.example\.com$ 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ 
RewriteRule^https://www.%1%{REQUEST_URI} [NE,L,R] 
+0

謝謝您的回答。上述規則將正常工作,並從https和www中排除子域名。但是我必須將我的測試網站的管理員名稱重命名爲http://test.example.com/testadmin/,因此它不會重定向到https://www.example.com/admin/。但是當我嘗試登錄到我的測試管理員時,它會再次加載生產管理面板。 – user37968

相關問題