我最近在我的网站上购买并集成了HTTPS,我用它来开发子域名上的其他网站。 HTTPS在www和非www网站上完美运行,因为它已经注册。
我使用以下命令自动从所有子页面重定向到https:
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
但我在something.mydomain.com
和其他子域名上有很多网站,现在会自动重定向到https,当然还会显示不受信任的连接错误和安全问题,因为证书未注册到这些子域名。
可以请某人指出我正确的方向,该命令应如何将所有子域重定向到除www子域以外的非https版本?那么它不会再向客户显示错误了吗?
非常感谢。
答案 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
。