2016-03-02 132 views
1

我有一個服務器是由幾個域訪問。 所有這些域必須有www。前面。.htaccess force www。和https爲特定的域

只有一個域名應該是HTTPS,另一個域名是HTTP,因爲我只有域名上的SSL證書。

我嘗試下面的代碼在我的.htaccess文件

RewriteEngine敘述在

# First force domain to use www. 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule .* http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

# Then force https 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^amanvida.eu [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.amanvida.eu [NC] 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC] 

應該強制域HTTPS是www.amanvida.eu

但是它不能完全作爲工作預計 https://www.amanvida.eu/nl/amanprana-serum-gezicht-shangri-la.html - 作品,當然是

http://www.amanvida.eu/nl/amanprana-serum-gezicht-shangri-la.html - 工程

http://amanvida.eu/nl/amanprana-serum-gezicht-shangri-la.html - 工程

https://amanvida.eu/nl/amanprana-serum-gezicht-shangri-la.html - 重定向到主頁

所以4種分之3的情況下,已經工作正常,但我想如果用戶已經在HTTPS站點的情況下但不在www上。域也可以正確地重定向到頁面,而不是主頁。

我甚至試圖迫使WWW是這樣的:

# First force domain to use www. 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule .* http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

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

沒有成功。

回答

3

要強制HTTPS和www特定域,您可以使用:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ 
RewriteCond %{HTTPS} off 
RewriteRule^https://www.domain.com%{REQUEST_URI} [NC,L,R] 
+0

這工作。謝謝! –

相關問題