2013-08-29 68 views
1

我只想删除www并为我的域中的任何页面强制建立安全连接。在mod_rewrite中使用双重定向是一个好习惯吗?

我正在使用双重定向,但我不知道这是一种好的做法,还是可能会被搜索引擎惩罚。我也想知道是否有更好的方法来做到这一点:

# Remove www 
    RewriteCond %{HTTP_HOST} ^www.example.com$ 
    RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 

# Force https  
    RewriteCond %{HTTP_HOST} ^example.com$ 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 

回答

1

只有被重定向两倍的特定URL会(使用httpwww的URL)进行处罚。

得到的url(https没有www)在重定向后达到不会受到惩罚。

所以,如果您的网址使用https没有www已经建立,你不会看到那么一个点球的影响,但如果你是从www移动你的网站并没有在同一时间加入https,你可能会看到一个temporpary罚款,但不应该太多,因为搜索引擎不会花费很长时间才能赶上该网站刚刚移动,并应保留大部分的排名。

编辑两者都做在一个单一的重定向,你可以做这样的事情:

# Force https and remove www 
    RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ 
    RewriteCond %{HTTP_HOST} ^www\.example\.com$ [OR] 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 
+0

谢谢。所以,你认为这是两种方式:删除www和强制https? – Memochipan

+1

@Memochipan是的,我认为这样做很好。如果你想减少HTTP请求的数量,你可以检测到两者并且在一个重定向之前在另一个重定向之前执行它,但是如果你的用户登陆一个URL为http://www.'相当频繁(如果这种格式的链接分散在论坛中)例如 – Paulpro

+0

不,它不是这种情况,因为大多数链接来自同一个网站,并且所有链接都使用不带www的https。但是,您能否提供一些代码来说明我们如何减少HTTP请求的数量? – Memochipan

相关问题