最近安装了Discuz! X3论坛,之前很早就用过Discuz! 的早期版本,也对设置伪静态有些研究,但这次使用Discuz! X3,却感到陌生了,因为已经有几年不接触dz论坛程序了,所以设置论坛的伪静态还得重新开始琢磨,不过其实也很简单,今天就给大家介绍一下如何在windows+IIS的环境下配置伪静态。
在我们架设好Discuz! X3后,打开后台进入到 全局 - seo设置 - URL静态化,如下图所示:
然后勾选你想要设置伪静态的项目,举个例子,比如我只想设置论坛开始伪静态,那么我就将论坛主题列表页、论坛内容列表页、论坛Achiver页,当然了日后还有可能用上插件,所以将插件也选上,这样选上以后,对于下面的Rewrite的兼容性和仅对游客有效这两项保持默认就好了(默认都是“否”),这样设置好了以后,我们点击“提交”。
提交以后,我们再返回到上面找到“查看当前的rewrite规则”,点击打开后,找到“IIS Web Server(独立主机用户)”,因为我用的win2003服务器,所以我选择这个,如果你用的是不同的服务器,选择对应的其他项即可,这样我们将IIS Web Server(独立主机用户)下面的内容复制下来:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=forumdisplay&fid=$2&page=$3&$5
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$6
RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html(\?(.*))*$ $1/index\.php\?action=$2&value=$3&$5
RewriteRule ^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html(\?(.*))*$ $1/plugin\.php\?id=$2:$3&$5
将以上的内容复制下来后,粘贴到记事本里,然后将记事本的名称修改成httpd.ini,注意一定要将记事本的后缀txt改为ini,不显示记事本后缀名的尤其要注意这点。
将保存好的httpd.ini上传到你的BBS所在的目录,比如你的论坛目录是bbs,那么一定要放到bbs这个目录里面。
上面步骤完成后,我们要对IIS进行一些基本的设置,以便实现IIS的rewrite功能,这里我们选择一个rewrite工具,关于如何设置IIS的rewrite功能,大家百度一下一大把,这里亦是美网络就不做详细赘述了。