.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