我对这个问题感到困惑。使用以下代码,我可以在任何非SSL网址上强制使用SSL,但是当用户(以及Google的结果)将用户带到http://mysite.co.za时,我们会遇到问题,因为网址会被重写为{{3 }}
由于我的证书已绑定到www.mysite.co.za,它会立即引发安全错误,因为网址中缺少“www”。
有人指出在域名以HTTPS而不是HTTP启动时将www添加到域名的方法吗?
非常感谢。
添加https://的当前代码如下:
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
答案 0 :(得分:1)
有人指出在域名以HTTPS而不是HTTP启动时将www添加到域名的方法吗?
所以你想要这个:
您当前的规则:
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
此规则对您失败,因为无论连接是否安全,它都会添加www。此外,它保持简单http的方式(不转发到https://)。
满足您上述要求的规则是
#if the host does not start with www.
RewriteCond %{HTTP_HOST} !^www\.
#and the connection is not secure
RewriteCond %{HTTPS} =""
#forward
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]
L
标志是不必要的,因为重定向结束重写。
答案 1 :(得分:0)
这不能回答你的问题,但它肯定是解决问题的方法:
来自Digicert的SSL证书将默认保护同一域的WWW和非WWW变体。我不知道有任何其他主流证书颁发机构这样做 - Digicert SSL Plus