帝国ECMS教程:APMServ伪静态化(url rewrite)
APMServ是一个集成了Apache、PHP、MySQL等的WEB服务器套件,可以很容易地在Windows系统下实现网站服务器平台的搭 建,但是在APMServ下如何实现伪静态,还是有很多人不知道,特别是网上有些文章介绍的APMServ环境下的静态化方法,纯粹是转来转去,根本不可 行。
其实实现方法很简单(我亲自试过,保证可行):
1、确保Apache\conf\httpd.conf这个文件中 LoadModule rewrite_module modules/mod_rewrite.so这句前面没有#号,如果有,去掉之后重启Apache;
2、找到Apache\conf\apmserv\vhost.conf这个文件,里面是虚拟主机的配置信息,找到对应虚拟主机的配置信息,找到 AllowOverride None,修改成AllowOverride All。记得改完后重启Apache以便使修改生效。
3、使用.htaccess文件
举个实例:APMServ下实现Discuz 7论坛的静态化
假定虚拟主机test已经建立好,将Discuz 7.0论坛安装在test下面的forum目录里,按照上面的方法,启用mod_rewrite.so这个模块,然后找到Apache\conf\apmserv\vhost.conf这个文件,修改AllowOverride None为All,然后将.htaccess文件放到forum目录中。
附Discuz 7静态化规则:
RewriteBase /forum
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1