Url Rewrite Mod
这是一个Apache提供的
内置模块
,可以实现对请求网址进行重新处理:
比如:
这是一个常规的(非rewrite mod)的
CooCooWakka地址:
http://www.hsfz.net.cn/coo/wcvs/wakka.php?wakka=HomePage
如果开启rewrite mod,则地址可变为:
http://www.hsfz.net.cn/coo/wcvs/HomePage
显然,漂亮多了。
如何开启
首先确认你的
CooCooWakka根目录下有".htaccess"文件,内容如下:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ wakka.php?wakka=$1 [QSA,PT,L]
并且设置wakka.config.php,(以上文地址为例)
"base_url" => "
http://www.hsfz.net.cn/coo/wcvs/",
"base_path" => "
http://www.hsfz.net.cn/coo/wcvs/",
"rewrite_mode" => "1",
然后编辑apache的conf(httpd.conf)文件。(假设/var/www/wakka是你的文件系统上的实际路径)
<Directory "/var/www/wakka/">
AllowOverride All
</Directory>
如何关闭
修改.htaccess,
把
RewriteEngine? on
改为
RewriteEngine? off
并设置wakka.config.php,
"base_url" => "
http://www.hsfz.net.cn/coo/wcvs/wakka.php?wakka=",
"base_path" => "
http://www.hsfz.net.cn/coo/wcvs/",
"rewrite_mode" => "0",
存在的问题
如果在虚拟目录中开启,访问
http://www.hsfz.net.cn/coo/wcvs
会出现错误
http://www.hsfz.net.cn/coo/wcvs/
则不会。
该问题已经被解决,请按照上文修改自己的.htaccess
参考
Apache URL Rewriting Guide
好象要把httpd.conf里这句的注释去掉?
LoadModule? rewrite_module modules/mod_rewrite.so
我试了好象没去掉不行