https和www重定向问题

时间:2016-11-12 16:55:10

标签: .htaccess ssl mod-rewrite https

我已经为域example.comwww.example.com创建了一个带有letsencrypt的SSL证书,并将其上传到我的托管包中。证书似乎工作正常,如果我打开https://www.example.com该网站被标记为安全。

现在我想基本上通过.htaccess文件强制使用httpswww

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.comwww.example.com)。我的托管包说明www子域是预配置的,无法更改。

希望有人可以解释我需要做什么或做错什么 我还想知道我想做的事情是好还是我在这里做坏事。

1 个答案:

答案 0 :(得分:1)

您可以使用此单一规则作为第一条规则来强制执行httpswww

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 ---