Apache下织梦伪静态规则怎么写?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 织梦建站 正文

第一步:准备工作

  1. 确认环境:您的主机或服务器必须支持 Apache,并且开启了 mod_rewrite 模块,绝大多数支持 Apache 的虚拟主机都默认开启了此模块。
  2. 确认目录:请确认您的织梦程序是安装在网站根目录(如 public_htmlwwwroot)还是子目录(如 public_html/dede),规则中的 和 /dede/ 需要根据您的实际情况进行修改。
  3. 备份文件:在修改任何文件之前,请务必备份您的 .htaccess 文件和网站程序,以防配置错误导致网站无法访问。

第二步:获取并修改 .htaccess 文件

如果您网站的根目录下没有 .htaccess 文件,或者文件内容不完整,可以从织梦官方程序的 /install/ 目录下找到 htaccess.txt 文件,将其复制到网站根目录,并重命名为 .htaccess

apache系统织梦写伪静态规则
(图片来源网络,侵删)

用文本编辑器(如 VS Code, Sublime Text, Notepad++)打开它,并根据您的织梦版本进行修改。


第三步:配置伪静态规则

织梦的伪静态规则主要分为 后台设置.htaccess 规则 两部分。

A. 织梦后台设置

这是最关键的一步,必须在后台开启伪静态功能。

  1. 登录您的织梦后台。

    apache系统织梦写伪静态规则
    (图片来源网络,侵删)
  2. 进入 【系统】 -> 【系统基本参数】

  3. 在左侧菜单选择 【核心设置】

  4. 找到以下几项,并进行设置:

    • 是否使用伪静态:选择 “是”
    • 栏目目录默认名:建议设置为 html
    • 列表命名规则:建议设置为 {typedir}/list_{page}.html
    • 文章命名规则:建议设置为 {typedir}/{aid}.html
    • 文章命名规则(使用目录):如果您的栏目较多,可以使用此规则,{typedir}/{Y}/{M}{D}/{aid}.html

设置完毕后,点击 “保存” 按钮。

apache系统织梦写伪静态规则
(图片来源网络,侵删)

B. .htaccess 文件配置

我们需要在 .htaccess 文件中添加正确的 Rewrite 规则。

织梦安装在网站根目录

这种情况下,.htaccess 文件位于网站的根目录(如 public_html/)。

适用于 DedeCMS 5.7 及以上版本

这是目前最常用的规则,包含了首页、栏目页、文章页、列表页等所有常用页面的规则。

<IfModule mod_rewrite.c>
  RewriteEngine On
  # 绑定域名到子目录(可选,如果不需要可以删除这部分)
  # 将 news.yourdomain.com 绑定到 /news/ 目录
  # RewriteCond %{HTTP_HOST} ^news\.yourdomain\.com$ [NC]
  # RewriteRule ^(.*)$ /news/$1 [L]
  # 如果请求的文件或目录已存在,则直接访问
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  # 织梦主站规则
  RewriteRule ^index\.html$ /index\.php [I]
  RewriteRule ^plus/list-([0-9]+)\.html$ /plus/list\.php\?tid=$1 [I]
  RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list\.php\?tid=$1&totalresult=$2&PageNo=$3 [I]
  RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ /plus/view\.php\?arcID=$1&pageno=$2 [I]
  RewriteRule ^plus/view-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/view\.php\?arcID=$1&pageno=$2&userip=$3 [I]
  RewriteRule ^plus/list\.php\?tid=([0-9]+)$ /plus/list-$1\.html [I]
  RewriteRule ^plus/view\.php\?arcID=([0-9]+)$ /plus/view-$1\.html [I]
  # 织梦会员中心规则
  RewriteRule ^member/index\.html$ /member/index\.php [I]
  RewriteRule ^member/([a-z]+)\.html$ /member/$1\.php [I]
  RewriteRule ^member/([a-z]+)-([a-z]+)\.html$ /member/$1\.php\?$2 [I]
  RewriteRule ^member/([a-z]+)-([a-z]+)-([a-z]+)\.html$ /member/$1\.php\?$2=$3 [I]
  # 织img标签规则
  RewriteRule ^data/([a-z]+)\.html$ /data/$1\.php [I]
</IfModule>

织梦安装在子目录

假设您的织梦程序安装在 public_html/dede/ 目录下。

  1. 后台设置:与场景一完全相同,后台的设置规则保持不变。
  2. .htaccess 文件:将 .htaccess 文件放在 public_html/dede/ 目录下,并修改规则如下。

适用于 DedeCMS 5.7 及以上版本(子目录安装)

<IfModule mod_rewrite.c>
  RewriteEngine On
  # 将请求重定向到子目录
  RewriteCond %{REQUEST_URI} !^/dede/
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /dede/$1 [L]
  # 织梦子目录内部规则
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^index\.html$ /dede/index\.php [I]
  RewriteRule ^plus/list-([0-9]+)\.html$ /dede/plus/list\.php\?tid=$1 [I]
  RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /dede/plus/list\.php\?tid=$1&totalresult=$2&PageNo=$3 [I]
  RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ /dede/plus/view\.php\?arcID=$1&pageno=$2 [I]
  RewriteRule ^plus/view-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /dede/plus/view\.php\?arcID=$1&pageno=$2&userip=$3 [I]
  RewriteRule ^plus/list\.php\?tid=([0-9]+)$ /dede/plus/list-$1\.html [I]
  RewriteRule ^plus/view\.php\?arcID=([0-9]+)$ /dede/plus/view-$1\.html [I]
  # 织梦会员中心规则
  RewriteRule ^member/index\.html$ /dede/member/index\.php [I]
  RewriteRule ^member/([a-z]+)\.html$ /dede/member/$1\.php [I]
  RewriteRule ^member/([a-z]+)-([a-z]+)\.html$ /dede/member/$1\.php\?$2 [I]
  RewriteRule ^member/([a-z]+)-([a-z]+)-([a-z]+)\.html$ /dede/member/$1\.php\?$2=$3 [I]
  # 织img标签规则
  RewriteRule ^data/([a-z]+)\.html$ /dede/data/$1\.php [I]
</IfModule>

注意:上面的子目录规则中,所有的路径前都加上了 /dede/,请务必将 dede 替换为您自己安装织梦的实际目录名。


第四步:验证和测试

  1. 保存并上传:将修改好的 .htaccess 文件通过 FTP 或主机控制面板的文件管理器上传到服务器的对应目录。
  2. 更新目录:登录织梦后台,进入 【核心】 -> 【批量更新HTML】,依次点击“更新主页HTML”、“更新栏目HTML”、“更新文档HTML”,这一步会根据您在后台设置的伪静态规则,生成对应的静态页面,并让服务器规则生效。
  3. 访问测试
    • 访问您的网站首页,看是否正常。
    • 点击一个栏目,观察 URL 是否从 plus/list.php?tid=1 变成了 plus/list-1.html
    • 打开一篇文章,观察 URL 是否从 plus/view.php?arcid=123 变成了 plus/view-123.html
    • 如果所有页面都正常显示,URL 已经变成伪静态格式,那么恭喜您,配置成功了!

常见问题排查

  • 配置后网站打不开,显示 500 错误或 404 错误
    • 原因.htaccess 文件中的规则有语法错误,或者路径不正确。
    • 解决:请立即通过 FTP 将备份的 .htaccess 文件传回,恢复原状,然后仔细检查规则中的路径是否与您的实际目录结构匹配(特别是子目录安装的情况)。
  • 部分页面可以,部分页面不行
    • 原因:可能是后台的设置与 .htaccess 规则不完全匹配,或者 批量更新HTML 没有执行。
    • 解决:再次检查后台的核心设置,并重新执行“批量更新HTML”操作。
  • 伪静态规则不生效,URL 依然是动态的
    • 原因:Apache 的 mod_rewrite 模块可能未开启,或者主机商不支持伪静态。
    • 解决:联系您的主机商确认是否支持伪静态,如果支持,请他们检查 mod_rewrite 模块是否开启。

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

-- 展开阅读全文 --
头像
dedecms织梦如何实现响应式美女图片?
« 上一篇 2025-12-11
织梦dedecms移动建站如何快速搭建?
下一篇 » 2025-12-11

相关文章

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

目录[+]