原帖:北京google优化
当Google索引网站时,它将带www前缀和不带的网址看作完全不同的网站。被称为Google规范问题,这种索引方法会对网页Google排名产生不利影响。因为部分内部链接可能包括WWW而其它可能没有。从Google的角度看,它将到网站的链接分割开来,降低了网页排名。你可以通过查看带WWW和不带的网址页面排名,来分辨网站是否正遭受Google的规范问题。如果你看到两个不同的网页排名,那么你可能希望解决这个问题。我们可以用称为mod_rewrite的Apache模块来解决这个问题,它可以自动将请求指向一个一致的格式。
mod_rewrite是一个便捷的Apache模块,当它侦测到制定模式时将改写网址。它异常强大,能为许多SEO相关的问题提供解决方案,包括Google规范问题。我们用它来执行301重定向,将包含WWW的网址发送到用户的浏览器上。
服务器提供不同的HTTP状态码,以显示对请求的回应。你可能已熟悉404状态码,以显示页面请求未找到。301状态码是由服务器管理者将URL请求重定位到另一个制定的页面。为了发送301重定位状态码,需要创建一个名为htaccess.txt,包含以下代码的文件给Apache发送信息:
增加WWW
RewriteEngine on
RewriteCond%{HTTP_HOST}^example.com$[NC]
RewriteRule^(.*)$http://网址/$1 [=301,L]
评估网址时,这些代码用正则表达式来定位某个模式。在许多脚本和编程语言中普遍使用正则表达式,来确定字符串模式——一系列的文本字符。它们可能会比较恐怖,因为它们用晦涩难懂的字符来定位特定的文本,没有经过事先研究,都不能非常直观的阅读。在这个例子中我们看到了说明文本模式情景的奇怪字符。比如^代表字符串的开始,$代表字符串的结尾。
既然已经将重写代码放到合适的位置,那么将htaccess.txt文件上传到服务器的WEB目录下,然后将它改名为.htaccess。在本地将文件命名为htaccess会导致一些问题,因为对一些操作系统如Mac OS X来讲这些被看作保留名称,并会自动把它隐藏。如果你第一次使用Apache,.htaccess文件会对服务器和各种与之相关的模块发出空闲的配置命令。Apache当需要发出回应时,就查找这个文件,并支持使用不同目录下独特的.htaccess文件,以精细控制服务器配置。我们将经常用它来配置Apache,以达到我们易发现的目标。
代码样例中的的第一行启动mod_rewrite,第二行准备响应网址域名中的页面请求。当然,为了能够运行,最后一行创建了重写规则,使用户重定位到带WWW的目标网址。如果要做的正好相反,你要移除WWW,那么只需要确保重写条件中包含WWW,并从重写规则中移除它。
还有另外一个方法来确保Google排名时,使用的是期望的网址结构。Google的网站管理员工具允许你定义偏好值,在索引时网址是否包含WWW。这种方法不错,但没有解决其它搜索引擎规范的问题,所以最好还是使用mod_rewrite解决方案。