在mod_rewrite中使用双重定向是一个好习惯吗?

时间:2013-08-29 02:55:53

标签: apache .htaccess mod-rewrite

我只想删除www并强制为我网域中的任何网页建立安全连接。

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

# 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 个答案:

答案 0 :(得分:1)

只有被重定向两次的特定网址才会受到处罚(使用http的网址使用www)。

重定向后到达的结果网址(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]