LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 690|回复: 0

使用 URL Rewrite 对网站进行 SEO

[复制链接]
发表于 2005-4-19 15:32:21 | 显示全部楼层 |阅读模式
使用 URL Rewrite 对网站进行 SEO
原文出处:http://www.lividecay.org

搜索引擎通常都认为 .html 这样的文件的内容要更可靠,速度也更快。从很多上网用户的角度来看,他们也觉得 .html 似乎就是要比 .php 之类要快,因此,如果能够通过某种方法让整个网站的所有内容都变成 .html,那么无疑将会产生非常好的各方面的效果。

Apache Web Server 有一个叫做 rewrite 的模块可以实现这样的功能。

具体说来就是这样,比如你有一个执行搜索的脚本,叫做 search.php,接受一个叫做 q 的参数,比如下面这样的地址。

http://livid.3322.org/search.php?q=IBM

但是或许下面这样的地址对于无论搜索引擎或者上网用户而言会更好?

http://livid.3322.org/search/IBM.html

是的,你没有必要真的为了谁执行这样的一个关于 IBM 的查询而就为他去生成一个 IBM.html 的静态文件,我们可以让 Web Server 把接收到的请求地址中的一部分映射到另外一个真实地址去。比如用户请求 /search/ 下的 IBM.html,就把这个文件的文件名映射到 /search.php 的 q 这个参数去。

Apache Web Server 的 rewrite 模块正是用来完成这样的功能的,要实现上面提到的这样的效果,你可以把下面几行在确认已经装载了 rewrite 模块的前提下写到配置文件中去,比如 .htaccess 文件中或者是虚拟主机的配置文件中。

RewriteEngine on
RewriteRule /search/(.+)\.html$ /search.php?q=$1 [L]

然后重新启动 Apache,就可以实现了。语法很简单,你应该一看就明白。而实际上 rewrite 模块的功能非常强大,强大到可以征服整个地球,关于更多的你可以去看 Apache 的参考文档。

但是使用这样的方式对于站点在制作和测试时就增加了一个额外的要求。就是,站点的页面所使用的外部文件,必须都使用绝对地址连接。因为,比如我前面提到的 search.php 使用相对路径语言连接了一个 css,则当访问地址变成 /search/ 时,在 /search/ 这个位置下是肯定没有找不到这个 css 的,因此必须使用绝对地址,比如在连接 css 的时候,必须在 link 标签中使用如 href="/css_generic.css" 这样的语法。而 css 的 url() 之类的语法中也必须使用绝对地址。

使用 rewrite 模块对服务器的性能不会造成明显影响,只是的确要稍微多占用一些 CPU 资源。另外就是,IIS 本身是不支持 rewrite 的,需要通过第三方的模块才能支持,因此如果你的整个站点都打算使用 rewrite 来进行 SEO 的话,你要考虑清楚移植性方面的风险。而除此之外,其他各种支持 rewrite 的 Web Server(如 Zeus)在 rewrite 语法方面也是稍微有些不同的。我的 http://livid.3322.org/ 这个网站的整站就都使用了 rewrite 进行 SEO,在 Google 里面被收录的页面非常多。每个月都能够在 Google 中捕获好几千关键字。

下个星期我就打算使用一台独立的高配置服务器来放这个代号叫做 Lividot 的网站,呵呵,一切都会变得更加精彩的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表