你是不是经常看到别人的论坛链接特别清爽,比如显示成”/topic/seo/”这种格式?而自己的Discuz论坛专题页面却带着”?123″这样的参数尾巴?别着急,今天咱们就聊聊这个让新手站长头疼的问题。我刚开始折腾论坛那会儿,光是搞明白伪静态这三个字就查了三天资料…
先弄懂几个关键概念 伪静态说白了就是让动态网页看起来像静态的。比如把原本的”forum.php?mod=forumdisplay&fid=2″变成”forum-2.html”。这样做有两个好处:搜索引擎更喜欢这种”干净”的网址,普通用户看着也舒服。
准备工作不能少 1. 先确认服务器支持rewrite模块,Apache的话检查.htaccess是否启用,Nginx要看配置文件有没有加载rewrite规则 2. 登录Discuz后台,在”全局->SEO设置”里把”URL静态化”选项打开(记得先把所有规则都勾上) 3. 准备好你的专题目录ID,这个在创建专题时会自动生成
具体操作步骤 以最常见的Apache服务器为例,咱们需要改两个地方。首先是.htaccess文件,在网站根目录找到这个文件(没有就新建),加入这段代码:
RewriteRule ^topic/(.+)/$ forum.php?mod=collection&action=view&ctid=$1
这里有个容易出错的地方——很多人忘记在规则最后加[QSA,NC,L]这些参数。我之前就栽过跟头,结果导致专题页面的分页链接全部失效。正确的写法应该像这样:
RewriteRule ^topic/(\d+)/page-(\d+)$ forum.php?mod=collection&action=view&ctid=$1&page=$2 [QSA,NC,L]
然后是Discuz的专题模板文件,找到template/default/forum/collection_***.htm这类文件(不同版本可能路径不同),把里面的动态链接替换成伪静态格式。比如原来的:
要改成:
这时候可能有人要问:”我按照教程做了,为什么打开页面显示404?”这种情况八成是服务器配置没弄对。检查三点:1.服务器是否重启过服务 2.规则文件有没有放对位置 3.专题ID是否存在
进阶技巧 想让专题目录支持中文别名?可以在规则里加入:
RewriteRule ^topic/([a-zA-Z0-9_\-]+)/$ forum.php?mod=collection&action=view&ctname=$1
然后在创建专题时,记得在”别名”栏填写英文或数字组合。注意!中文路径虽然看着直观,但容易引发编码问题,新手建议先用数字ID
避坑指南 – 修改前务必备份原文件 – 每次修改完记得清空浏览器缓存 – 专题页面的分页链接需要单独处理 – 如果使用CDN,可能需要更新缓存规则
小编自己搭建论坛时,曾经因为伪静态设置不当导致百度收录量暴跌。后来发现是专题页面的canonical标签没同步修改,这个细节很多教程都不会提。建议大家在完成设置后,用站长工具抓取测试,确保搜索引擎能正确识别新链接。
本站文章由SEO技术博客撰稿人原创,作者:阿君创作,如若转载请注明原文及出处:https://www.ainiseo.com/hosting/17581.html