- 网站服务器配置:让服务器知道如何将美观的URL地址“翻译”成真实的PHP脚本地址,这是最关键的一步。
- DedeCMS后台设置:告诉DedeCMS系统,生成链接时使用伪静态的格式。
下面我将为你详细讲解这两个步骤,并提供不同服务器环境下的具体配置方法。

第一步:网站服务器配置 (核心步骤)
在修改DedeCMS后台设置之前,必须确保你的服务器已经支持并配置好了伪静态规则,否则,所有设置都是徒劳,访问伪静态链接会直接导致404错误。
请根据你的服务器环境,选择对应的配置方法:
Apache 服务器 (.htaccess)
这是最常见的情况,绝大多数虚拟主机都使用Apache。
-
检查并开启
mod_rewrite模块: 大多数虚拟主机商已经默认开启了这个模块,你可以通过创建一个phpinfo.php文件,内容为<?php phpinfo(); ?>,然后在浏览器中访问,查找Loaded Modules列表,看是否有mod_rewrite即可,如果没有,需要联系你的主机商开启。
(图片来源网络,侵删) -
配置
.htaccess文件:- 通过FTP或主机控制面板,进入你的网站根目录()。
- 找到或创建一个名为
.htaccess的文件,如果已经存在,请直接编辑它。 - 将以下代码添加到文件的开头(注意:如果文件中已有
RewriteEngine on,就不要重复添加)。
# 将 RewriteEngine 开启 RewriteEngine On # DedeCMS 伪静态规则 RewriteRule ^index\.html$ /index\.php [L] RewriteRule ^list-([0-9]+)\.html$ /plus/list\.php\?tid=$1 [L] RewriteRule ^list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list\.php\?tid=$1&totalresult=$2&PageNo=$3 [L] RewriteRule ^view-([0-9]+)-([0-9]+)\.html$ /plus/view\.php?arcID=$1&pageno=$2 [L] RewriteRule ^view-([0-9]+)\.html$ /plus/view\.php?arcID=$1 [L]
注意:如果你的网站安装在了子目录(
http://www.yourdomain.com/dede/),你需要将规则中的 修改为/你的子目录/。RewriteRule ^index\.html$ /dede/index\.php [L]
Nginx 服务器 (.conf 配置)
如果你使用的是Nginx服务器(如VPS、云服务器),需要修改Nginx的配置文件。
-
修改
nginx.conf或站点配置文件:- 通过SSH或FTP登录服务器,找到你的Nginx站点配置文件,通常位于
/usr/local/nginx/conf/vhost/你的域名.conf或/etc/nginx/sites-available/你的域名。 - 在
server { ... }块中,添加以下location规则。
# 在 server 块内添加以下规则 location / { # ... 其他 rewrite 规则 ... if (!-e $request_filename) { rewrite "^/index\.html$" /index.php last; rewrite "^/list-([0-9]+)\.html$" /plus/list.php?tid=$1 last; rewrite "^/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$" /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 last; rewrite "^/view-([0-9]+)-([0-9]+)\.html$" /plus/view.php?arcid=$1&pageno=$2 last; rewrite "^/view-([0-9]+)\.html$" /plus/view.php?arcid=$1 last; } } - 通过SSH或FTP登录服务器,找到你的Nginx站点配置文件,通常位于
-
重载Nginx配置: 修改完配置文件后,需要重载Nginx使配置生效。
sudo nginx -s reload # 或者使用 service sudo service nginx reload
IIS 服务器 (web.config)
如果你的服务器是Windows系统,使用IIS,则需要配置 web.config 文件。
-
确保你的服务器已安装 URL Rewrite 模块,如果没有,请从微软官网下载安装。
-
在网站根目录下创建或编辑
web.config文件。 -
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="DedeCMS Rule 1"> <match url="^index\.html$" ignoreCase="false" /> <action type="Rewrite" url="index.php" /> </rule> <rule name="DedeCMS Rule 2"> <match url="^list-([0-9]+)\.html$" ignoreCase="false" /> <action type="Rewrite" url="plus/list.php?tid={R:1}" /> </rule> <rule name="DedeCMS Rule 3"> <match url="^list-([0-9]+)-([0-9]+)-([0-9]+)\.html$" ignoreCase="false" /> <action type="Rewrite" url="plus/list.php?tid={R:1}&totalresult={R:2}&PageNo={R:3}" /> </rule> <rule name="DedeCMS Rule 4"> <match url="^view-([0-9]+)-([0-9]+)\.html$" ignoreCase="false" /> <action type="Rewrite" url="plus/view.php?arcid={R:1}&pageno={R:2}" /> </rule> <rule name="DedeCMS Rule 5"> <match url="^view-([0-9]+)\.html$" ignoreCase="false" /> <action type="Rewrite" url="plus/view.php?arcid={R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
第二步:DedeCMS 后台设置
当服务器配置完成后,就可以登录DedeCMS后台进行设置了。
-
登录DedeCMS后台:使用你的管理员账号登录。
-
进入“系统” -> “系统基本参数”:
- 在左侧菜单栏中找到并点击“系统”。
- 在下拉菜单中选择“系统基本参数”。
-
修改“核心设置”中的选项:
- 在“站点设置”选项卡中,找到 “是否使用伪静态” 这一项。
- 将其选项从“不使用”修改为 “是”。
-
(可选)自定义URL规则:
- 在同一个页面,切换到“核心设置”选项卡。
- 你可以在这里自定义栏目和文章页的URL命名规则,
- 栏目页URL规则:
list/{tid}.html - 文章页URL规则:
view/{aid}.html
- 栏目页URL规则:
- 修改后,DedeCMS在生成链接时会遵循你定义的规则。但前提是你的服务器配置(如.htaccess)必须支持你自定义的规则。
-
保存设置:
页面最下方有一个“保存”按钮,点击它保存所有更改。
-
更新网站缓存和栏目/文章:
- 为了确保新的伪静态链接生效,建议执行以下操作:
- 进入“系统” -> “一键更新网站” -> “更新系统缓存”。
- 再次进入“一键更新网站”,分别点击“更新栏目HTML”和“更新文档HTML”,这一步会根据你的新设置重新生成所有页面的链接。
- 为了确保新的伪静态链接生效,建议执行以下操作:
第三步:验证与常见问题
完成以上两步后,你的DedeCMS伪静态就开启了。
如何验证?
- 前台查看:打开你的网站首页、栏目页和文章页,观察浏览器地址栏的URL是否已经变成了你设置的伪静态格式(如
http://www.yourdomain.com/view-123.html)。 - 点击测试:点击栏目链接和文章链接,看是否能正常打开,而不是跳转到404页面。
常见问题排查
-
问题1:开启后访问所有伪静态链接都返回404错误。
- 原因:99%的可能是因为服务器没有配置伪静态规则,请返回第一步,仔细检查你的
.htaccess、nginx.conf或web.config文件是否正确上传并配置。
- 原因:99%的可能是因为服务器没有配置伪静态规则,请返回第一步,仔细检查你的
-
问题2:首页正常,但栏目页和文章页404。
- 原因:服务器规则可能不完整,请检查你的服务器配置文件,确保包含了栏目和文章页面的Rewrite规则。
-
问题3:后台更新缓存后,网站首页也打不开了。
- 原因:可能是
.htaccess文件语法错误,请检查文件中是否有拼写错误,或者RewriteEngine On是否在所有规则之前,可以尝试将.htaccess文件改名(如.htaccess.bak),看看网站是否能恢复正常,如果恢复正常,说明就是该文件的问题。
- 原因:可能是
-
问题4:URL中有 出现。
- 原因:伪静态没有完全生效,这通常意味着服务器没有正确处理重写请求,请再次检查服务器配置。
总结一下流程: 服务器配置(.htaccess等) → 后台开启“是否使用伪静态” → 更新网站缓存 → 验证效果。
按照这个流程操作,绝大多数情况下都能成功开启DedeCMS的伪静态功能,祝你操作顺利!
