Htaccess在WWW和非WWW上使用https,但其他子域

时间:2016-09-17 17:48:17

标签: .htaccess redirect mod-rewrite

我最近在我的网站上购买并集成了HTTPS,我用它来开发子域名上的其他网站。 HTTPS在www和非www网站上完美运行,因为它已经注册。

我使用以下命令自动从所有子页面重定向到https:

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

但我在something.mydomain.com和其他子域名上有很多网站,现在会自动重定向到https,当然还会显示不受信任的连接错误和安全问题,因为证书未注册到这些子域名。

可以请某人指出我正确的方向,该命令应如何将所有子域重定向到除www子域以外的非https版本?那么它不会再向客户显示错误了吗?

非常感谢。

2 个答案:

答案 0 :(得分:0)

要仅将www.mydomain.com重定向到HTTPS版本,请使用

RewriteCond %{HTTPS} !=on
RewriteCond "%{HTTP_HOST}" "^www\." [NC]
RewriteCond "%{SERVER_PORT}" "^80$"
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

答案 1 :(得分:0)

所以接下来的代码现在可以解决这个问题:

RewriteCond %{HTTPS} !=on
RewriteCond "%{HTTP_HOST}" "^www\." [OR]
RewriteCond "%{HTTP_HOST}" "^domain.com [NC]
RewriteCond "%{SERVER_PORT}" "^80$"
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

因此,它将HTTP://www.domain.com重定向到HTTPS://www.domain.com,但不包括其他子域。它还会将HTTP://domain.com重定向到HTTPS://domain.com