dede伪静态htaccess规则如何配置?

99ANYc3cd6
预计阅读时长 17 分钟
位置: 首页 DEDE建站 正文

什么是伪静态?

伪静态(URL Rewriting)是指将动态的 URL 地址(如 index.php?m=list&c=index&a=show&catid=1&id=2)重写成静态的、更美观、更利于 SEO 的形式(如 /article/1/2.html),它通过服务器模块(如 Apache 的 mod_rewrite)在后台进行地址重写,对用户和搜索引擎来说,看到的是静态地址,但实际访问的仍然是动态页面。

dede伪静态 htaccess
(图片来源网络,侵删)

为什么 DedeCMS 需要 .htaccess

DedeCMS 的伪静态功能需要服务器端的支持。.htaccess 文件是 Apache 服务器的一个配置文件,它允许你在不修改主服务器配置文件(如 httpd.conf)的情况下,对特定目录进行配置,我们将伪静态规则写入 .htaccess 文件,并放在 DedeCMS 的根目录下,即可实现伪静态效果。


第一步:开启 Apache 的 mod_rewrite 模块

在配置 .htaccess 之前,请确保你的 Apache 服务器已经开启了 mod_rewrite 模块。

  1. 检查是否开启

    • 在服务器上创建一个 phpinfo.php 文件,内容为 <?php phpinfo(); ?>,然后在浏览器中访问。
    • 搜索 Loaded Modules,查看列表中是否有 mod_rewrite,如果有,说明已开启。
  2. 如何开启

    dede伪静态 htaccess
    (图片来源网络,侵删)
    • Windows 系统:找到 Apache 的配置文件 httpd.conf(通常在 Apache\conf\ 目录下),搜索 #LoadModule rewrite_module modules/mod_rewrite.so,将开头的 去掉。
    • Linux 系统:编辑 httpd.conf 文件,同样找到并取消注释 LoadModule rewrite_module modules/mod_rewrite.so 这一行。
    • 重要:修改 httpd.conf 后,需要重启 Apache 服务才能生效。

第二步:创建和配置 .htaccess 文件

在你的 DedeCMS 网站根目录(即包含 index.php, dede, templets 等文件夹的目录)下,创建一个名为 .htaccess 的文件。

注意

  • 文件名是 .htaccess,前面有一个点,没有后缀名。
  • 如果使用 Windows 资源管理器无法创建,可以先用记事本保存为 htaccess.txt,然后通过 FTP 或 SSH 客户端(如 FileZilla)将其重命名为 .htaccess

第三步:选择合适的 .htaccess 规则

以下提供了几种最常用和最稳定的 DedeCMS 伪静态规则,请根据你的 DedeCMS 版本和安装目录选择。

适用于 DedeCMS 5.7 及以上版本(默认目录结构)

这是最常见的情况,将网站根目录作为默认目录。

dede伪静态 htaccess
(图片来源网络,侵删)
# 将 RewriteEngine 模式打开
RewriteEngine On
# 如果请求的是真实存在的文件或目录,则直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# DedeCMS 5.7 伪静态规则
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 ^category\.html$ /plus/category\.php [L]
RewriteRule ^category-([0-9]+)-([0-9]+)\.html$ /plus/category\.php?tid=$1&PageNo=$2 [L]

使用说明

  1. 将以上代码完整复制到你的 .htaccess 文件中。
  2. 保存文件并上传到网站根目录。
  3. 登录 DedeCMS 后台,进入“系统” -> “系统基本参数” -> “核心设置”。
  4. 找到“是否使用伪静态”选项,将其设置为“是”。
  5. 保存设置,然后清除缓存。

适用于 DedeCMS 安装在子目录

如果你的 DedeCMS 安装在子目录,http://www.yourdomain.com/dede/

# 将 RewriteEngine 模式打开
RewriteEngine On
# 如果请求的是真实存在的文件或目录,则直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# DedeCMS 5.7 伪静态规则 (子目录版)
# 注意:在规则前加上子目录名,如 /dede/
RewriteRule ^dede/index\.html$ /dede/index.php [L]
RewriteRule ^dede/list-([0-9]+)\.html$ /dede/plus/list.php?tid=$1 [L]
RewriteRule ^dede/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /dede/plus/list.php?tid=$1&totalresult=$2&PageNo=$3 [L]
RewriteRule ^dede/view-([0-9]+)-([0-9]+)\.html$ /dede/plus/view.php?arcID=$1&pageno=$2 [L]
RewriteRule ^dede/category\.html$ /dede/plus/category\.php [L]
RewriteRule ^dede/category-([0-9]+)-([0-9]+)\.html$ /dede/plus/category\.php?tid=$1&PageNo=$2 [L]

使用说明

  1. 将以上代码复制到 .htaccess 文件中。
  2. 关键:确保所有规则中的路径都包含你的子目录名(如 dede/)。
  3. 将此 .htaccess 文件放在网站根目录,而不是 dede 子目录内。
  4. 后台设置和清除缓存的步骤与方案一相同。

适用于 DedeCMS 5.6 及更早版本

这些版本的规则可能略有不同。

# 将 RewriteEngine 模式打开
RewriteEngine On
# 如果请求的是真实存在的文件或目录,则直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# DedeCMS 5.6 及更早版本伪静态规则
RewriteRule ^index\.html$ /index.php [L]
RewriteRule ^plus/list-([0-9]+)\.html$ /plus/list.php?tid=$1 [L]
RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 [L]
RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?arcID=$1&pageno=$2 [L]

第四步:后台设置

无论使用哪个方案,最后一步都是在 DedeCMS 后台开启伪静态功能。

  1. 登录 DedeCMS 后台。
  2. 菜单栏点击 “系统” -> “系统基本参数”。
  3. 在左侧选择 “核心设置”。
  4. 找到 “是否使用伪静态” 这一项,将其值修改为 “是”。
  5. 点击 “保存更改”。
  6. 建议在后台的 “系统” -> “一键更新网站” 中,选择 “更新HTML” 和 “更新文档HTML”,以生成静态页面,让伪静态规则更好地工作。

常见问题排查 (FAQ)

Q1: 配置后页面打不开了,出现 404 错误。 A1:

  • 首要检查:确认 Apache 的 mod_rewrite 模块已开启并重启了服务。
  • 目录权限:确保 .htaccess 文件在正确的目录(网站根目录),并且服务器有读取权限(权限通常设为 644)。
  • 路径问题:如果你使用了子目录,请仔细检查 .htaccess 规则中的路径是否正确。
  • 规则冲突:检查 .htaccess 文件中是否有其他错误的 Rewrite 规则。
  • 临时解决:可以将 .htaccess 文件重命名(如 .htaccess.bak)来临时禁用伪静态,看看网站是否能恢复正常。

Q2: 伪静态开启后,后台登录不了或页面样式乱了。 A2:

  • 这通常是因为后台的某些请求也被伪静态规则影响了。

  • 解决方法:在 .htaccess 文件的开头,添加以下规则来排除后台目录:

    # 排除后台目录,防止伪静态影响后台访问
    RewriteCond %{REQUEST_URI} ^/dede/  # 将 /dede/ 替换成你的后台目录名
    RewriteRule .* - [L]
    # 然后再是你的其他伪静态规则...
    RewriteEngine On
    ...

Q3: 我用的是 Nginx 服务器,这个文件有用吗? A3: 没有用。.htaccess 是 Apache 服务器的配置文件,Nginx 服务器需要使用 nginx.conf 配置文件来实现伪静态,你需要将 DedeCMS 的伪静态规则转换为 Nginx 的 rewrite 规则,并添加到对应站点的 server 块中,DedeCMS 官网或网上可以找到 Nginx 的伪静态规则。

希望这份详细的指南能帮助你成功配置 DedeCMS 的伪静态!

-- 展开阅读全文 --
头像
dede伪静态htaccess规则怎么配置?
« 上一篇 2025-12-17
织梦arcurl字段如何实现动态链接生成?
下一篇 » 2025-12-17

相关文章

取消
微信二维码
支付宝二维码

目录[+]