今天一个找我配置过 lnmp 环境的用户要搭建 Discuz 论坛,但是发现不支持伪静态,跟版模板网没怎么折腾过 Discuz,百度下才知道,原来军哥的 LNMP 环境包自带的 DZ 规则不适用于 Discuz x2.5,记录下对应的伪静态规则。
打开 LNMP 伪静态文件目录:
1 | cd /usr/local/nginx/conf |
新建并编辑 discuzx25.conf 文件:
1 | vi discuzx25.conf |
按 i 进入编辑模式,添加下面的代码:
1 2 3 4 5 6 7 8 9 10 11 12 | rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last; rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last; rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last; rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last; rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last; rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last; rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last; rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last; rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last; if (!-e $request_filename) { return 404; } |
按 Esc 退出编辑模式,输入 :wq 保存退出。
然后进入网站配置文件目录:
1 | cd /usr/local/nginx/conf/vhost |
编辑对应的网站配置文件,比如 aaa.com.conf
1 | vi aaa.com.conf |
找到配置中的
1 | include discuz.conf; |
修改为
1 | include discuzx25.conf; |
保存后,重启 Nginx或LNMP:
1 | lnmp restart |
注:以上是 lnmp 1.2 下的操作。
方法出自:http://www.gongzi.org/lnmp-discuzx25-rewrite.html