我有这个困境。 通过以下代码,我可以在任何非SSLurl上强制使用SSL,但是当用户(以及Google的结果)将用户带到http://mysite.co.za时,我们遇到了问题,因为url会被重写到https://mysite.co.za
由于我的证书绑定到www.mysite.co.za这个事实,它会立即抛出一个安全错误,因为URL中缺less“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]
有人可以指出一种方法,当域名开始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
标志是不必要的,因为重定向结束了重写。
这不能回答你的问题,但这肯定是解决问题的方法:
来自Digicert的SSL证书将默认保护相同域的WWW和非WWW变体。 我不知道有任何其他的主流证书颁发机构 – Digicert SSL Plus