Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx

Posted 老申的随笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx相关的知识,希望对你有一定的参考价值。

Discuz 官方给出的伪静态规则并不完整,只实现了部分的伪静态设置及规则,分区 gid 仍然是 forum.php?gid=xxx 的形式,对于有强迫症的我是无法忍受的,下面给出分区 gid 的伪静态实现方法,包括论坛首页和版块页,列表页,帖子阅读页和论坛发帖页(完美适用于 Discuz X2.5 以上版本,以默认风格为例)。

演示网址:http://www.bbseat.com.cn/forum.php

论坛首页:打开 template/default/forum/discuz.htm

搜索:

forum.php?gid=$cat[fid]

替换为:

forum-$cat[fid].html

版块页:打开 source/module/forum/forum_forumdisplay.php

搜索:

Location: forum.php?gid=$_G[fid]

替换为:

Location: forum-$_G[fid].html

搜索:

forum.php?gid=‘.$forum_up[‘fid‘].‘

替换为:

forum-‘.$forum_up[‘fid‘].‘.html

搜索:

forum.php?gid=‘.$forum_top[‘fid‘].‘

替换为:

forum-‘.$forum_top[‘fid‘].‘.html

帖子页:打开 source/module/forum/forum_viewthread.php

搜索:

? ‘forum.php?gid=‘.$fup :

替换为:

? ‘forum-‘.$fup.‘.html‘ :

这里有两个地方需要修改。

发帖页:打开 source/module/forum/forum_post.php

搜索:

? ‘forum.php?gid=‘.$fup :

替换为:

? ‘forum-‘.$fup.‘.html‘ :

这里也有两个地方需要修改。

分区伪静态规则

nginx伪静态规则:

rewrite ^([^\.]*)/forum-([0-9]+)\.html$ $1/forum.php?gid=$2 last;

Apache伪静态规则:

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(\w+)\.html$ forum.php?gid=$1 [L]

 

以上是关于Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx的主要内容,如果未能解决你的问题,请参考以下文章

Apache下使用rewrite实现discuz伪静态的配置

20.discuz论坛-实现伪静态

运维工程师之discuz论坛伪静态

Discuz论坛开启伪静态最详细的教程!

nginx下discuz! x3 伪静态化的配置

站点用的是discuz,在静态页面上使用动态参数,会造成spider多次和重复抓取