最近在玩discuz论坛,自己的主机做服务器
为了优化搜索引擎的搜索,所以开启论坛的仿静态功能
开始以为是在后台设置就行了,后来查了资料来看才知道要在apache 里配置rewrite模块才行.
于是就按着网上搜到的资料,自己整理一下就动手配置了
第一步: 由于我是之前就已经安装了apache 所以只需要重编译一下apache 获取mod_rewrite.so
./configure --prefix=/usr/local/apache2 --enable-rewrite=shared
make
make install
第二步就是配置 httpd.conf
先检查是否存在如下代码
LoadModule rewrite_module modules/mod_rewrite.so
如果不存在就手动加上去
如果存在,那么在配置文件(通常就是 conf/httpd.conf)中加入如下代码。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3
RewriteRule ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2
</IfModule>
此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置(httpd-vhosts.conf),即<VirtualHost>中去 如:
<VirtualHost *:80>
ServerAdmin
[email protected]
DocumentRoot "/home/project/website/bbs"
ServerName www.siclub.net
ServerAlias *.siclub.net
ErrorLog "logs/siclub.com-error_log"
CustomLog logs/siclub.com-access_log common
RewriteEngine On
RewriteRule ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3
RewriteRule ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2
</VirtualHost>
如果加在虚拟主机配置外部将可能无法使用。改好后将 Apache 停了再启动。看看效果,嘿不错
http://www.siclub.net/forum-15-1.html