2016-03-02 60 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

这工作。谢谢! –

相关问题