我已经为域example.com
和www.example.com
创建了一个带有letsencrypt的SSL证书,并将其上传到我的托管包中。证书似乎工作正常,如果我打开https://www.example.com
该网站被标记为安全。
现在我想基本上通过.htaccess文件强制使用https
和www
。
example.com --> https://www.example.com
www.example.com --> https://www.example.com
https://example.com --> https://www.example.com
http://www.example.com --> https://www.example.com
到目前为止,我已经从SO尝试了几个不同的重写规则,但似乎没有www适用于https。打开ERR_CONNECTION_REFUSED
时,它总是说https://example.com
我使用https://www.sslshopper.com/certificate-decoder.html仔细检查了证书,并列出了正确的地址(example.com
和www.example.com
)。我的托管包说明www子域是预配置的,无法更改。
希望有人可以解释我需要做什么或做错什么 我还想知道我想做的事情是好还是我在这里做坏事。
答案 0 :(得分:1)
您可以使用此单一规则作为第一条规则来强制执行https
和www
:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
# --- remaining rules go below this ---