htaccess基于域进行重写,将某些重定向到https,其他则不重定向

时间:2019-06-06 10:21:34

标签: apache .htaccess mod-rewrite

我有很多不同的域(例如,www.site1.com,www.site2.com,www.site3.com和www.site4.com)指向同一台服务器。

如果输入的域名不带www,我将使用规则将其添加:

RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !^.*\..*\..* [NC]
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

现在我只想将两个域重定向到https,所以我尝试了以下代码:

RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !^.*\..*\..* [NC]
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^site1\.com [NC]
RewriteCond %{HTTP_HOST} ^site2\.com [NC]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

但是没有成功,我尝试了很多规则,没有成功。

所以我的问题是这怎么办?

目标是,如果访问者访问site1.com或www.site1.com(端口80),它将被发送到www.site1.com(端口443),从site2.com(端口80)发送到www.site2。 .com(端口443)和site3.com(端口80)上的www.site3.com(端口80-无SSL)等等。

很抱歉出现奇怪的格式,stackoverflow将该格式归类为垃圾邮件

0 个答案:

没有答案