apache的rewrite模块实例操作

时间:2021-01-16 10:36:23

原文链接:http://blog.5ilinux.com/archives/2006/01/apacherewrite.html


我们的目标是把http://www.bulknews.cn/show.php?id=1014700通过rewrite的url重写,使可以直接http://www.bulknews.cn/1014700.html访问

1.首先配置apache的httpd.conf,目的是使.htaccess文件生效
<VirtualHost a.b.c.d>
    ServerAdmin a@b.com
    DocumentRoot /var/www/bulknews
    ServerName www.bulknews.cn
<Directory />
      Options FollowSymLinks
      AllowOverride All
</Directory>
ErrorLog  "|/usr/local/sbin/cronolog /var/log/www/wapya/www.bulknews.cn_error_log.%Y%m%d"
CustomLog "|/usr/local/sbin/cronolog /var/log/www/wapya/www.bulknews.cn_access_log.%Y%m%d" combined
</VirtualHost>

注意,这里必须是FollowSymLinks,AllowOverride是All,否则rewrite引擎根本不起作用,另外如果你的apache默认根目录是/var/www 的话,在/var/www的配置字段也要设置
Options FollowSymLinks
 AllowOverride All
我的就因为这个,只是在虚拟主机设置,导致一直不能实现静态页面的转化。

2.在/var/www/bulknews下设置.htaccess文件
我们这边最简单的配置就是
RewriteEngine   on
RewriteBase     /
RewriteRule     (.+)\.html$ show.php?id=$1 [L]

OK,重启web服务,这时候你就可以正常访问 http://www.bulknews.cn/1014700.html

另外rewrite还有很多应用,大家可以多去google找一些资料,功能还是很神奇的。