如何编辑htaccess以将所有流量重定向到安全的www域

时间:2016-01-30 11:54:48

标签: apache .htaccess redirect url-redirection

如何实现以下目标:

  • 将所有http://域.com重定向到https:// www.domain .com
  • 将所有http:// www.domain .com重定向到https:// www.domain .com
  • 将所有https://域.com重定向到https:// www.domain .com

所以基本上,我的所有流量都是非www或www将被重定向到SSL www域。

编辑:

此外,我有两个适用于http的子域,因此我希望实现上述目标,同时保持2个子域不受上述重定向规则的限制。

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请求,重定向: