问: 我按教程新建了一个“行业资讯”栏目,列表页第一页能打开,但点“下一页”就变成404了,地址栏显示的是 list.php?tid=5&Page=2,这是咋回事?
答: 你这是典型的伪静态规则没同步,织梦CMS默认用的是动态参数(?tid=5&Page=2),如果你在后台开启了“栏目页伪静态”,但服务器(Apache/Nginx)里的重写规则没加对,分页参数就会被当成真实文件路径去解析,自然就404了。
处理方法:
- 打开后台“系统”->“SQL命令行工具”,执行这条语句:
UPDATEdede_arctypeSETispart=0 WHEREid=5;(把5换成你的栏目ID)——这能强制让栏目走动态参数模式。 - 如果你非得用伪静态,去下载和你PHP版本匹配的rewrite规则文件(官方文档里有),替换掉服务器配置里的旧规则。
- 改完记得去后台“生成”->“更新栏目HTML”,把该栏目的缓存文件重新生成一遍。
问: 我想给“产品中心”栏目加一个子栏目“新款产品”,但是后台点“添加栏目”后,死活不显示在栏目管理列表里,刷新了好几遍也没用。
答: 新栏目不显示,十有八九是缓存或排序问题。
快速解决:
织梦CMS栏目页分页链接报错?八成是这五个坑在作怪!
- 去后台“系统”->“系统缓存”,把“栏目缓存”和“菜单缓存”都清除。
- 检查你是否填了“栏目类型”——如果你选的是“单页文档”,它默认只出一个页面,不参与列表分页,所以会在另一个入口(“单页文档管理”)里显示,不在常规栏目列表里。
- 如果栏目父级选错了(比如选了个“频道封面”),它会被折叠起来,点栏目列表右上角的“展开所有”按钮,看看是不是藏在子级里。
问: 文章发布后,首页“最新动态”那一块总是抓不到新文章,但我明明已经更新了“首页HTML”啊。
答: 首页调用的往往是缓存标签或者指定栏目ID,你更新的是整页静态文件,但那个区块可能调用的是一天前的缓存数据。
对症下药:
- 检查首页模板里调代码是不是写成
{dede:arclist typeid='5' row='8'}——这里typeid指向的是你新文章的栏目ID,如果新文章发在栏目3,而模板写的是栏目5,那永远调不出来。 - 去后台“生成”->“更新系统缓存”,生成”->“一键更新网站”里的“更新所有html”。
- 如果还不行,打开空间的文件管理器,直接删除
data/cache/目录下所有文件名带index_的缓存文件,再重新生成首页。
问: 我想把整站模板换一套新的,直接把新模板文件夹上传到 /templets 里,然后在后台切到新模板名,但前台还是老样子。
答: 这是默认模板全局变量没改过来,织梦CMS里不止一个地方能设置模板路径。
分步排查:
- 后台“系统”->“系统基本参数”->“模板默认风格”,确认填的是你新文件夹的名字(比如
newtheme)。 - 每个栏目有独立设置:进入“栏目管理”->找到你的栏目点“修改”,看“列表模板”和“文章模板”是否还指向旧路径,如果有,改成
{style}/list.htm这种相对写法。 - 最关键一步:清空
data/tplcache文件夹里所有.html缓存文件,否则织梦会一直用老解析结果。
问: 首页我想调出特定几个栏目的最新文章,比如只显示“新品发布”和“技术教程”,但每次前台显示的都是全站最新文章。
答: 你的调用标签里肯定漏了typeid参数,或者用了typeid='0'(代表全站)。
正确写法示例:
{dede:arclist typeid='5,9' row='10' titlelen='45'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
注意:typeid里的逗号是英文逗号,数字必须是栏目ID(可以在后台栏目列表里看到),如果你开启了“多站点”功能,还得在标签里加 channelid='1' 指定内容模型,改完模板记得更新缓存并生成首页。
问: 我要给每个栏目单独设置SEO标题和关键词,后台“栏目管理”里的“SEO标题”填了,但前台浏览器标题栏还是显示“公司名 - 栏目名 - 织梦CMS”默认格式。
答: 因为你的模板里用的标题标签是 {dede:field.title/},而不是 {dede:global.cfg_seotitle/} 或调用栏目自定义SEO的标签。
修改模板两步走:
- 打开栏目的列表模板(比如
list.htm),找到<title>标签,改成: {dede:field.seotitle/}`
如果后台没填seotitle,自动会回落到栏目名。 - 如果你用的是“栏目内容”里的“关键词”字段,那模板里要用
{dede:field.keywords/}。
记得用“生成”->“更新栏目HTML”强制刷新该栏目。
问: 我想开启会员投稿功能,但后台“会员设置”里打开了“允许注册”,前台点“会员中心”却跳转到登录页,没有投稿入口。
答: 投稿入口需要单独开启,而且得给会员组分配权限。
操作路径:
- 后台“系统”->“系统用户管理”->“会员等级管理”,找到“普通会员”点“修改”,把“允许投稿”勾上。
- 前端导航需要手动加一个链接到
/member/index.php?uid={dede:global.cfg_ml/}&action=article_add(或者用标签{dede:memberinfos/}生成)。 - 如果会员点“发表文章”还是没反应,检查是否没设置“栏目投稿权限”——在“栏目管理”里,每个栏目下面有个“投稿权限”选项,默认是“禁止”,改成“允许普通会员投稿”。
问: 首页顶部想放一个广告位,我已经在“广告管理”里新建了一个横幅图片,但前台首页完全不显示。
答: 广告模块有两种调用方式,你用错了一种。
- 如果你建的是“广告位”(类似一个容器),得在模板里插入
{dede:myad name='顶部横幅'/}这个标签,name必须和后台广告位标识完全一致。 - 如果你建的只是”(直接填HTML或图片),得用
{dede:php} echo GetAdvertise(1); {/dede:php}这种语法(里面的数字是广告ID)。
广告默认有缓存时间,刚创建完没生效是常事,去“系统”->“缓存更新”里点“清空广告缓存”,然后刷新首页。
问: 所有页面都正常,就是文章内容页里“上一篇/下一篇”的链接地址带了一串奇怪的参数,而且标题后面多了一个“_2”,看着像重复页面。
答: 这是织梦的多页文章拆分功能误开了,在后台“系统”->“系统基本参数”->“其他选项”里,找到“文章内容分页”或“自动分页字数”,如果填了数值(比如5000字自动拆页),就可能生成 article_2.html 这种分页文件。
关闭方法: 把那项改为“0”。
然后去“系统”->“SQL命令行”执行:
UPDATEdede_addonarticleSETbody= REPLACE(body, '页一', '') WHEREtypeid= 你的栏目ID;
(这步是为了清理已经生成的分页标记),最后重新生成文章HTML。
问: 我换了个域名,从A服务器搬到B服务器,全部文件打包搬过去了,数据库也导入了,但后台登录后点任何菜单都报“Request Error!”,前台页面打不开。
答: 典型的安装配置残留问题,织梦CMS把系统绝对路径和域名写死在 data/common.inc.php 里面。
修复步骤:
- 打开
data/common.inc.php,找到$cfg_basehost,改成你的新域名带http://。 - 找到
$cfg_cookieDomain,改成你的新域名(不需要http)。 - 找到
$cfg_dbname、$cfg_dbuser、$cfg_dbpwd,确认数据库配置和导入后的完全一致。 - 删掉
data/install.lock文件(如果有的话),并检查install目录是否还在,如果还在就该删掉,否则后台会反复跳安装。 - 最后用FTP把所有文件权限设置为755(目录)和644(文件),尤其
data目录必须可写。



发表评论