.htaccess如何实现网址规范化

  网址规范化在SEO中是一个比较重要的环节,同时存在不同的网址版本,不但可能造成复制,还不能正确的集中权重。  目前大多数网站,绑定域名都有带WWW和不带两个版本,甚至很多网站同时绑定多个域名。经过

  网址规范化在SEO中是一个比较重要的环节,同时存在不同的网址版本,不但可能造成复制,还不能正确的集中权重。
  目前大多数网站,绑定域名都有带WWW和不带两个版本,甚至很多网站同时绑定多个域名。经过处理(跳转、CNAME……),对于访问者来说可能没有任何影响,看到的都是同样的内容;但对于搜索引擎,就无法确定哪一个网址是真正的主页。
  可控因素,网站内容链接应该保持同一个版本,比如整站中,返回首页的地址为固定的一个版本。但还有一个不可控的因素,就是别人链到你的网站,所使用的网址。很多自发链接或交换链接时,别人可能会省略掉WWW,或采用绑定的另一域名。
  外界因素不可控,我们可以从网站内部来控制。利用Apache的.htaccess,使用301重定向,规范网址。
  新建一个空文件,文件名.htaccess,填入重定向规则后,上传到网站根目录。
  用301将不带WWW的域名重定向
  rewriteEngine on
  rewriteCond {HTTP_HOST} ^379.cc [NC]
  rewriteRule ^(.*)$ http://www.379.cc/$1 [R=301,L]
  用301将绑定的其他多个域名重定向到主域名
  RewriteEngine on
  RewriteCond {HTTP_HOST} ^379.cc$ [OR]
  RewriteCond {HTTP_HOST} ^bbs.379.cc$ [OR]
  RewriteCond {HTTP_HOST} ^luoyang.cc$ [OR]
  RewriteCond {HTTP_HOST} ^www.luoyang.cc$ [OR]
  RewriteCond {HTTP_HOST} ^bbs.luoyang.cc$
  RewriteRule ^(.*)$ http://www.379.cc/$1 [R=301,L]
  当然,也可以再扩展一下,将index.html、index.php等也重定向一下:
  RewriteEngine on
  RewriteCond {REQUEST_URI} ^[A-Z]{3,9} /index.php HTTP/
  RewriteRule ^index.php$ http://www.379.cc/ [R=301,L]
  Enabling SSI Via htaccess 通过htaccess允许SSI(Server Side Including)功能
  AddType text/html .shtml
  AddHandler server-parsed .shtml
  Options Indexes FollowSymLinks Includes
  DirectoryIndex index.shtml index.html
  Blocking users/sites by referrer 根据referrer阻止用户/站点访问
  需要mod_rewrite模块
  例1. 阻止单一referrer: badsite.com
  RewriteEngine on
  # Options FollowSymlinks
  RewriteCond {HTTP_REFERER} badsite.com [NC]
  RewriteRule .* - [F]
  例2. 阻止多个referrer: badsite1.com, badsite2.com
  RewriteEngine on
  # Options FollowSymlinks
  RewriteCond {HTTP_REFERER} badsite1.com [NC,OR]
  RewriteCond {HTTP_REFERER} badsite2.com
  RewriteRule .* - [F]
  [NC] - 大小写不敏感(Case-insensite)
  [F] - 403 Forbidden
  注意以上代码注释掉了”Options FollowSymlinks”这个语句。如果服务器未在 httpd.conf 的 段落设置 FollowSymLinks, 则需要加上这句,否则会得到”500 Internal Server error”错误。
  Blocking bad bots and site ripp

标签: