Apache的mod_rewrite模块为我们提供了强大的功能。最近偶在学习使用mod_rewrite模块实现一些基本的功能,比如最基本的URL地址重写、转移根目录、错误重定向等等。
mod_rewrite这些功能基本上都是基于正则表达式的,用户可以修改服务器根目录下的.htaccess文件内容,来实现这些rewrite功能。
URL地址重写是一种向搜索引擎友好的方法,一般搜索引擎主动抓取页面的话,是不会主动去抓取动态地址中问号后面的内容的,那即是说如果你有两个页面,地址分别是index.php?id=1 index.php?id=2,那么,对于大部分搜索引擎来说,主动抓取的只有index.php这个无意义的页面。这时,URL重写就体现出作用了,它可以将静态的地址重写为动态页面地址。而地址重写的步骤也很简单,只要在你的.htaccess文件中写入类似下面的内容,具体可以跟据你的实际需要做修改。
RewriteEngine On
RewriteRule ^blog/([0-9]+).shtml$ index.php?action=view&id=$1
语法:RewriteRule 新地址(使用正则式匹配) 旧地址(变量用$1,$2等替换)
上面只列出了一个最简单的地址重写的例子。按照上面的例子,地址 http://www.xcolor.cn/blog/200511261015.shtml 将会被重新定位到 http://www.xcolor.cn/index.php?action=view&id=200511261015
关于mod_rewrite的其它一些强大的功能,将在以后慢慢介绍。 |