DedeCMS 的伪静态化主要分为两大块:

- 栏目伪静态:让栏目页的 URL 变得简洁美观,
/jishu/而不是/plus/list.php?tid=1。 - 页伪静态:让文章详情页的 URL 变得简洁,
/jishu/123.html而不是/plus/view.php?aid=123。
这篇教程将重点讲解 栏目伪静态,同时也会简要提及内容页伪静态,因为它们是相辅相成的。
核心思想
DedeCMS 的伪静态原理是:
.htaccess文件:在服务器(Apache)层面,通过一个名为.htaccess的文件,将用户请求的“美观URL”(如/jishu/)重写为服务器能识别的“真实URL”(如/plus/list.php?tid=1)。- 后台设置:在 DedeCMS 后台开启伪静态功能,并生成对应的规则文件。
- 栏目设置:为每个需要伪静态的栏目,在后台设置其“文件名”。
第一步:服务器环境准备(以 Apache 为例)
伪静态需要服务器支持 URL 重写功能,DedeCMS 主要使用 Apache 的 mod_rewrite 模块。
-
检查并启用
mod_rewrite:
(图片来源网络,侵删)- 大多数虚拟主机商已经默认开启此模块,无需手动操作。
- 如果你使用的是自己搭建的 Apache 服务器,请确保在
httpd.conf配置文件中有下面这行,并且没有被注释掉():LoadModule rewrite_module modules/mod_rewrite.so
- 确保
<Directory />和<Directory "你的网站根目录">配置块中,AllowOverride的值设置为All或至少是Options FileInfo,这允许在.htaccess文件中覆盖服务器的配置。<Directory "你的网站根目录"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
-
上传
.htaccess文件:- 这是伪静态的“交通警察”,负责指挥 URL 的重定向。
- 你可以从 DedeCMS 的安装包
/plus/目录下找到htaccess.txt文件。 - 将其重命名为
.htaccess。 - 用 FTP 工具或服务器管理面板,将其 上传到你的网站根目录(与
index.php同级)。 - 重要提示:如果你的网站已经存在一个
.htaccess文件,请将 DedeCMS 的规则追加到文件末尾,而不是直接覆盖,以免覆盖你已有的其他规则(如 WordPress 规则)。
第二步:DedeCMS 后台设置
这是最关键的一步,所有配置都在这里完成。
-
开启全局伪静态:
- 登录 DedeCMS 后台。
- 进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “是否开启伪静态” 选项,将其修改为 “是”。
- 点击“保存更改”。
-
生成栏目目录:
- 进入 “栏目” -> “栏目管理”。
- 点击右上角的 “更新栏目HTML” 按钮。
- 在弹出的页面中,确保 “选择指定栏目” 是“所有栏目”,然后点击“开始更新”。
- 这一步会为每个栏目生成一个物理目录,
jishu/,并在这个目录里生成一个index.html文件,这个index.html就是用户访问/jishu/时实际看到的文件。
第三步:设置单个栏目伪静态
你需要为每一个需要伪静态的栏目进行单独设置。
-
进入栏目管理:
- 再次进入 “栏目” -> “栏目管理”。
-
编辑栏目:
- 找到你想要设置伪静态的栏目(技术分享”),点击后面的 “[修改]”。
-
填写关键信息:
- 在栏目编辑页面,找到 “高级选项” 部分,并展开它。
- “目录默认页”:通常保持默认的
index.html即可。 - “栏目文件名”:这是核心! 在这里填写你想要的目录名。
- 你想让“技术分享”栏目的 URL 是
/jishu/,那么这里就填写jishu。 - 你可以使用英文、数字和下划线,建议使用小写字母和拼音,方便搜索引擎抓取。
- 不要带 或
.html后缀,系统会自动处理。
- 你想让“技术分享”栏目的 URL 是
- “列表命名规则”:可以保持默认,如
{typedir}/index_{page}.html。 - “文章命名规则”:这里设置的是文章内容页的 URL 格式,设置为
{typedir}/{aid}.html,那么文章 URL 就会是/jishu/123.html。
-
保存:
点击“确定”或“保存”按钮。
-
更新栏目缓存:
- 设置完所有需要的栏目后,回到 “栏目” -> “栏目管理”,再次点击右上角的 “更新栏目缓存”,这一步非常重要,能让 DedeCMS 记住你设置的“栏目文件名”。
第四步:验证效果
完成以上所有步骤后,就可以验证伪静态是否成功了。
-
访问栏目页:
- 在浏览器地址栏输入
你的域名/栏目文件名/,http://www.yourdomain.com/jishu/。 - 如果页面正常显示,并且浏览器地址栏的 URL 没有变回
plus/list.php?tid=...,那么栏目伪静态就成功了!
- 在浏览器地址栏输入
-
检查分页:
- 如果栏目有多个页面,点击分页链接(如 2、3 页),URL 应该是
/jishu/index_2.html这样的格式,而不是带?tid=的动态链接。
- 如果栏目有多个页面,点击分页链接(如 2、3 页),URL 应该是
-
检查文章页:
- 进入该栏目,点击任意一篇文章,URL 应该是
/jishu/文章ID.html这样的格式。
- 进入该栏目,点击任意一篇文章,URL 应该是
常见问题与解决方案 (FAQ)
Q1: 为什么设置好了,访问 /jishu/ 依然显示 404 页面?
A1: 这是最常见的问题,请按以下顺序排查:
.htaccess文件:确认文件名是.htaccess(注意有个点),并且上传到了正确的根目录。- 服务器模块:确认 Apache 的
mod_rewrite模块已启用。 - 目录权限:确认网站根目录和新生成的栏目目录(如
jishu/)有正确的读取权限(通常是 755)。 - 后台设置:确认在“核心设置”里开启了“是否开启伪静态”,更新了栏目HTML”和“更新了栏目缓存”。
- URL 格式:确保访问的 URL 格式正确,是
域名/栏目名/,而不是域名/栏目名.html。
Q2: 我的网站根目录有多个 .htaccess 文件怎么办?
A2: 不要覆盖!将 DedeCMS 的 RewriteRule 规则(通常在 #dedecms 标签内)复制并粘贴到你已有的 .htaccess 文件末尾。
Q3: 伪静态对 SEO 有什么好处? A3: 好处非常多:
- URL 更友好:
/seo-tips/123.html比/plus/view.php?aid=123更易于用户理解和记忆。 - 权重集中:搜索引擎会将
/seo-tips/和/seo-tips/123.html视为更重要的页面,有利于权重集中。 - 隐藏技术细节:URL 中不包含
.php等动态脚本后缀,让网站看起来更像一个静态网站,更专业。
Q4: 我的网站是 Nginx 服务器怎么办?
A4: Nginx 的配置与 Apache 不同,需要手动在 Nginx 的配置文件中添加 Rewrite 规则,DedeCMS 官方也提供了 nginx.conf 示例文件,你可以在安装包中找到,并根据你的域名和网站目录进行修改,然后添加到 Nginx 的虚拟主机配置中。
DedeCMS 栏目伪静态化是一个系统工程,需要 服务器支持、后台全局设置 和 单个栏目配置 三者协同工作,只要按照以上步骤一步步操作,并仔细排查常见问题,就一定能成功实现,祝你操作顺利!
