当您设置好了Discuz X3.1论坛伪静态后,您会发现论坛版块和帖子内容页面都是伪静态了,但是论坛版块上层分区却还是原来的样子并没有实现伪静态,这是因为Discuz x3.1默认不支持分区伪静态,不过这不表示没法实现分区的伪静态,方法还是有的。
首先,要修改模板文件,以默认的模板default为例,依次打开论坛根目录下的文件夹/template/default/forum,编辑discuz.htm那个文件,大概在345行找到下面的代码:
<h2><a href="{if !empty($caturl)}$caturl{else}forum.php?gid=$cat[fid]{/if}" style="{if $cat[extra][namecolor]}color: {$cat[extra][namecolor]};{/if}">$cat[name]</a></h2>
修改为:
<h2><a href="{if !empty($caturl)}$caturl{else}forum-$cat[fid].html{/if}" style="{if $cat[extra][namecolor]}color: {$cat[extra][namecolor]};{/if}">$cat[name]</a></h2>
可以先在电脑上修改了再上传到服务器空间上去,或者在cPanel面板的文件管理器里面直接修改保存都可以,注意修改之前先备份下文件以防意外。
然后,在.htaccess文件里面添加如下代码:
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(\w+)\.html$ forum\.php\?gid=$1&$1
注意不能放在最下面,我们测试过放在最下面会出现插件不存在的错误信息,放在上面点就没问题,建议放在article那个RewriteRule的下面。这样就可以了,刷新下网站再点击分区访问看看,网址就变成http://www.wphostz.com/bbs/forum-1.html这样的了。
该方法只在Discuz X3.1上测试过,其他版本是否可行我们不清楚,如果您用的是其他版本的且通过这个方法可以实现分区伪静态,请与我们联系告诉我们您使用的是哪个版本的,以便我们更新该教程。
本教程由WP Hostz编写,专业美国Linux虚拟主机服务商,完美支持Discuz X等PHP + Mysql网站程序,网址:http://www.wphostz.net。