apapche2 配置 rewrite

最近在玩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

你可能感兴趣的:(apache,html,PHP,.net,搜索引擎)