如何实现以下目标:
所以基本上,我的所有流量都是非www或www将被重定向到SSL www域。
编辑:
此外,我有两个适用于http的子域,因此我希望实现上述目标,同时保持2个子域不受上述重定向规则的限制。
答案 0 :(得分:1)
首先,您可以编辑httpd.conf
文件,并将其添加到:80服务器
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com$1 [L,R=301]
</IfModule>
无论如何,.htaccess
上的这个会做同样的
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) https://www.domain.com/$1 [L,R,NE]
此外,您还可以在vhost文件中添加类似
的内容 Redirect permanent / https://www.domain.com/
在你的vhost_ssl中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com$1 [L,R=301]
</IfModule>
答案 1 :(得分:1)
您可以在Root / .htaccess中使用以下代码:
RewriteEngine on
#Http to https
#Exclude subdomains
RewriteCond %{HTTP_HOST} !^(sub1|sub2)
RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NC,L,R]
#add www on ssl
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NC,L,R]
这将重定向:
到ssl
第二条规则会将www添加到ssl上的非www请求,重定向:
到