Apache 如何编辑htaccess以将所有流量重定向到安全的www域
如何实现以下目标:Apache 如何编辑htaccess以将所有流量重定向到安全的www域,apache,.htaccess,redirect,url-redirection,Apache,.htaccess,Redirect,Url Redirection,如何实现以下目标: 将所有http://domain.com重定向到https://www.domain.com 将所有http://www.domain.com重定向到https://www.domain.com 将所有https://domain.com重定向到https://www.domain.com 所以基本上,我的所有流量,无论是非www还是www,都将重定向到SSL www域 编辑: 此外,我有两个子域可以在http上工作,因此我希望实现上述目标,并使这两个子域不受上述重定向规
- 将所有http://domain.com重定向到https://www.domain.com
- 将所有http://www.domain.com重定向到https://www.domain.com
- 将所有https://domain.com重定向到https://www.domain.com
此外,我有两个子域可以在http上工作,因此我希望实现上述目标,并使这两个子域不受上述重定向规则的影响。首先,您可以编辑
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>
此外,您还可以在vhost文件中添加以下内容
重定向永久/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>
重新启动发动机
RewriteCond%{HTTP_HOST}^domain.com$[NC]
重写规则^(.*)$https://www.domain.com$1[L,R=301]
您可以在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]
这将重定向:
- 或
如果您有权访问httpd主服务器配置文件,则应避免完全使用.htaccess文件。使用.htaccess文件会降低Apache http服务器的速度。
@Croises-您提供的链接仅用于www到https www。其他两个非www到https www和https非www到https www的链接如何?@vallismortis-我无法访问httpd主服务器配置文件,这就是为什么我要求提供htaccess解决方案的原因。重定向所有http://domain.com到https://www.domain.com,并将所有https://domain.com重定向到https://www.domain.com正在工作。但是,将所有http://www.domain.com重定向到https://www.domain.com不适用于上述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]