强制用户使用www访问该站点。和https

时间:2010-02-02 15:54:02

标签: http .htaccess mod-rewrite redirect https

我正在尝试编写附加www的.htaccess规则。如果需要,到域和http到http,但我似乎无法找到适用于每种情况的规则或规则集。

案件是......

\ https://www.site.com - 应该正常工作

\ http://www.site.com - 应该转到\ https://www.site.com

\ http://site.com - 应该转到\ https://www.site.com

\ https://site.com - - 应该转到\ https://www.site.com

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:2)

尝试此规则:

RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://www.%2%{REQUEST_URI} [L,R=301]

这应该包括请求不是HTTPS(第一个条件)或主机不以www.开头的情况(第二个条件)。在这种情况下,第三个条件将在没有起始www.(如果存在)的情况下获取主机,然后在规则的替换中使用。