mod_rewrite不适用于http://但不适用于http:// www

时间:2014-07-09 15:00:25

标签: .htaccess mod-rewrite

我有以下代码:

####  Redirect to www location

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^sspconf.com [NC]
RewriteRule ^(.*)$ https://www.sspconf.com/$1 [R=301,NC]

当我输入http://sspconf.com/时,它会重定向https://www.sspconf.com/,这很好。

但是,如果我输入http://www.sspconf.com/(带有www),则不会重定向。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

将您的规则更改为:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^sspconf.com [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.sspconf.com/$1 [R=301,NC]

如果缺少" www"它会重定向。 OR 如果它不是HTTPS。

答案 1 :(得分:0)

添加以下行:

RewriteCond %{HTTPS} off

并更改此行:

RewriteCond %{HTTP_HOST} ^sspconf.com [NC]

到此:

RewriteCond %{HTTP_HOST} ^(www\.)?sspconf.com [NC]

^仅匹配字符串的开头,因此www.sspconf.com不匹配。

因此,您的整体规则将如下所示:

####  Redirect to www location

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?sspconf.com [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.sspconf.com/$1 [R=301,NC]

已编辑以发表评论

答案 2 :(得分:0)

以下解决了我的问题,感谢您的帮助。

# Force SSL on entire site

RewriteEngine On
RewriteBase /
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://www.sspconf.com/$1 [R,L]
相关问题