.htaccess文件是Apache服务器的配置文件,通过它可以实现URL重写,将动态的、带问号的URL地址(如 plus/list.php?tid=1)转换成更美观、更利于SEO的静态化URL地址(如 plus/list-1.html)。

通用版规则(适用于大多数织梦版本)
这是最常用、最基础的规则,适用于DedeCMS 5.7、5.8等主流版本,它主要处理文章列表、文章内容、搜索等页面的伪静态。
请将以下代码完整复制到您的网站根目录下的 .htaccess 文件中,如果该文件不存在,请手动创建一个。
# 织梦DedeCMS 伪静态规则 (通用版)
# 开启重写引擎
RewriteEngine On
# 如果请求的是一个真实存在的文件或目录,则直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 文章列表
RewriteRule ^plus/list-([0-9]+)\.html$ plus/list.php?tid=$1
RewriteRule ^plus/list-([0-9]+)-([0-9]+)\.html$ plus/list.php?tid=$1&PageNo=$2
页
RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ plus/view.php?arcID=$1&pageno=$2
# 栏目目录
RewriteRule ^category/([a-zA-Z0-9_-]+)/$ index.php?tid=$1
RewriteRule ^category/([a-zA-Z0-9_-]+)/([0-9]+)$ index.php?tid=$1&PageNo=$2
# 搜索页
RewriteRule ^search\.html$ plus/search.php
# 标签列表页
RewriteRule ^tags\.html$ plus/tags.php
RewriteRule ^tags/([a-zA-Z0-9_-]+)$ plus/tags.php?/$1
# 自定义页面(单页)
RewriteRule ^page/([a-zA-Z0-9_-]+)\.html$ plus/view.php?aid=$1
# 会员中心
RewriteRule ^member/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)\.html$ member/index.php?$1=$2
RewriteRule ^member/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)\.html$ member/index.php?$1=$2&PageNo=$3
# 问答等其他页面(根据需要添加)
# RewriteRule ^question/([0-9]+)\.html$ question/index.php?id=$1
# 默认首页(可选,根据您的网站首页文件名而定)
# DirectoryIndex index.html index.htm index.php
不同服务器环境的注意事项
Apache 环境 (.htaccess)
这是最标准的情况,您只需要将上面的通用规则保存到网站根目录的 .htaccess 文件中即可。
操作步骤:

- 使用FTP或文件管理器登录您的服务器。
- 进入网站根目录(通常是
public_html或www)。 - 如果没有
.htaccess文件,新建一个;如果存在,请用上面的代码覆盖或追加内容。 - 确保文件编码为
UTF-8(无BOM头)。 - 上传覆盖后,检查文件权限,通常设置为
644。
Nginx 环境
Nginx 不使用 .htaccess 文件,它的伪静态规则需要写在 Nginx 的配置文件中(通常是 nginx.conf 或您网站虚拟主机配置文件)。
操作步骤:
- 找到您的 Nginx 站点配置文件。
- 在
server { ... }块内,添加如下rewrite规则。 - 修改配置后,需要执行
nginx -s reload命令重载配置使新规则生效。
Nginx 伪静态规则示例:
# 织梦DedeCMS 伪静态规则 (Nginx版)
location / {
if (!-e $request_filename) {
rewrite "^/plus/list-([0-9]+)\.html$" /plus/list.php?tid=$1 last;
rewrite "^/plus/list-([0-9]+)-([0-9]+)\.html$" /plus/list.php?tid=$1&PageNo=$2 last;
rewrite "^/plus/view-([0-9]+)-([0-9]+)\.html$" /plus/view.php?arcID=$1&pageno=$2 last;
rewrite "^/category/([a-zA-Z0-9_-]+)/$" /index.php?tid=$1 last;
rewrite "^/category/([a-zA-Z0-9_-]+)/([0-9]+)$" /index.php?tid=$1&PageNo=$2 last;
rewrite "^/search\.html$" /plus/search.php last;
rewrite "^/tags\.html$" /plus/tags.php last;
rewrite "^/tags/([a-zA-Z0-9_-]+)$" /plus/tags.php?/$1 last;
rewrite "^/page/([a-zA-Z0-9_-]+)\.html$" /plus/view.php?aid=$1 last;
}
}
IIS 环境
IIS 服务器需要使用 web.config 文件来实现伪静态。

操作步骤:
- 在网站根目录创建
web.config文件。 - 将下面的 XML 代码复制进去。
- 保存后,IIS 会自动加载此配置。
IIS 伪静态规则示例 (web.config):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="DedeCMS Rule 1">
<match url="^plus/list-([0-9]+)\.html$" />
<action type="Rewrite" url="plus/list.php?tid={R:1}" />
</rule>
<rule name="DedeCMS Rule 2">
<match url="^plus/list-([0-9]+)-([0-9]+)\.html$" />
<action type="Rewrite" url="plus/list.php?tid={R:1}&PageNo={R:2}" />
</rule>
<rule name="DedeCMS Rule 3">
<match url="^plus/view-([0-9]+)-([0-9]+)\.html$" />
<action type="Rewrite" url="plus/view.php?arcID={R:1}&pageno={R:2}" />
</rule>
<rule name="DedeCMS Rule 4">
<match url="^category/([a-zA-Z0-9_-]+)/$" />
<action type="Rewrite" url="index.php?tid={R:1}" />
</rule>
<rule name="DedeCMS Rule 5">
<match url="^category/([a-zA-Z0-9_-]+)/([0-9]+)$" />
<action type="Rewrite" url="index.php?tid={R:1}&PageNo={R:2}" />
</rule>
<rule name="DedeCMS Rule 6">
<match url="^search\.html$" />
<action type="Rewrite" url="plus/search.php" />
</rule>
<rule name="DedeCMS Rule 7">
<match url="^tags\.html$" />
<action type="Rewrite" url="plus/tags.php" />
</rule>
<rule name="DedeCMS Rule 8">
<match url="^tags/([a-zA-Z0-9_-]+)$" />
<action type="Rewrite" url="plus/tags.php?/{R:1}" />
</rule>
<rule name="DedeCMS Rule 9">
<match url="^page/([a-zA-Z0-9_-]+)\.html$" />
<action type="Rewrite" url="plus/view.php?aid={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
织梦后台设置(至关重要!)
设置了服务器伪静态规则后,必须在织梦后台进行相应设置,否则生成的链接仍然是动态的。
-
登录织梦后台:
http://您的域名/dede/ -
进入“系统” -> “系统基本参数”。
-
修改“核心设置”:
- 是否使用伪静态:选择“是”。
- (可选) 伪静态后缀:默认是
.html,可以修改为您想要的,如.htm,如果修改了,上面的.htaccess规则也要同步修改。
-
点击“保存”。
-
更新缓存:在后台右上角找到“系统缓存”并更新。
-
(推荐)一键更新网站:
- 进入“主页” -> “一键更新网站”。
- 勾选“更新所有文档”和“更新HTML页面”。
- 点击“开始更新”,这一步会根据你后台的伪静态设置,重新生成所有页面的链接,使其变成静态格式。
常见问题排查
如果设置后不生效,请按以下顺序检查:
-
规则是否生效:
- Apache: 确认
.htaccess文件在网站根目录,mod_rewrite模块已启用(通常虚拟主机商已开启)。 - Nginx: 确认规则已添加到正确的配置文件并执行了
nginx -s reload。 - IIS: 确认
web.config文件格式正确,且IIS已安装“URL Rewrite”模块。
- Apache: 确认
-
后台设置是否正确:再次检查“系统基本参数”中“是否使用伪静态”是否为“是”。
-
URL格式是否匹配:检查您后台设置的栏目或文章的URL规则,是否与
.htaccess中的规则匹配,如果后台设置了plus/list-{tid}.html,那么规则中的^plus/list-([0-9]+)\.html$就能匹配。 -
服务器权限问题:确保服务器有读写网站根目录和文件的权限。
-
URL冲突:检查是否有其他插件或程序也设置了重写规则,导致冲突。
希望这份详细的指南能帮助您成功配置织梦CMS的伪静态!
