当然这里分两种情况, 一种是独立主机用户,这部分用户拥有对主机的管理权限,因此配置起来比较方便一些。(注:这里就以 Discuz!6.1.0 的 Rewrite 规则为例,稍后在后面会列举出其他产品的 Rewrite 规则。
首先确定您使用的 Apache 版本,及是否加载了 mod_Rewrite 模块。 Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码:
LoadModule Rewrite_module libexec/mod_Rewrite.so
AddModule mod_Rewrite.c
Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码:
LoadModule Rewrite_module modules/mod_Rewrite.so
如果存在,那么在配置文件(通常就是 conf/httpd.conf)中加入如下代码。此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置,即
另外一种用户是 Apache 虚拟主机用户。
在开始以下设置之前,请首先咨询您的空间服务商,空间是否支持 Rewrite 以及是否支持对站点目录中 .htaccess 的文件解析,否则即便按照下面的方法设置好了,也无法使用。
检查论坛所在目录中是否存在 .htaccess 文件,如果不存在,请手工建立此文件。Win32 系统下,无法直接建立 .htaccess 文件,您可以从其他系统中拷贝一份,或者在 Discuz.net 技术支持栏目中下载此文件。编辑并修改 .htaccess 文件,添加以下内容:
# 将 RewriteEngine 模式打开 RewriteEngine On # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase /discuz # Rewrite 系统规则请勿修改 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
RewriteRule /qMarket/index.html /qMarket/index.php [N,I] RewriteRule /qMarket/detail_(d+).html /qMarket/detail.php?nohao=$1 [N,I] RewriteRule /qMarket/soTiaozao_(d+)_(d+).html /qMarket/soTiaozao.php?B=$1&S=$2 [N,I] RewriteRule /i_zxfengshui_(d+).html$ /i_zxfengshui.php?page=$1 [N,I]
传到空间,访问正常。
文章标题:[转]Apache下配置mod_Rewrite
本文路径:http://scpingwu.com/article/cpeehe.html