dede伪静态htaccess规则怎么配置?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 DEDE建站 正文
  1. 提升用户体验:URL 更美观、更符合用户习惯,易于记忆和分享。
  2. 利于 SEO:搜索引擎(如 Google、百度)更友好,静态化的 URL 更容易被收录和获得更好的排名。
  3. 增强安全性:隐藏了动态脚本(如 .php)的真实路径,增加了网站被攻击的难度。

第一步:开启 Apache 的 mod_rewrite 模块

在配置 .htaccess 之前,请确保你的 Apache 服务器已经开启了 mod_rewrite 模块,这是实现伪静态的前提。

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

如何检查和开启:

  1. 检查是否已开启

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

    • Linux 系统
      1. 打开 Apache 的配置文件,通常是 /etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf
      2. 找到 LoadModule rewrite_module modules/mod_rewrite.so 这一行。
      3. 如果前面有 号,请去掉它,然后保存文件。
      4. 重启 Apache 服务:service httpd restartsystemctl restart apache2
    • Windows 系统 (XAMPP/WampServer)
      1. 找到 Apache 的配置文件,通常在安装目录下的 conf/httpd.conf
      2. 同样,找到并取消注释 LoadModule rewrite_module modules/mod_rewrite.so
      3. 保存文件,然后重启 Apache。

第二步:配置 DedeCMS 后台

  1. 登录 DedeCMS 后台 (/dede/)。

    dede 伪静态 htaccess
    (图片来源网络,侵删)
  2. 进入 系统 -> 系统基本参数

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

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

    • 是否使用伪静态:选择 “是”
    • 重写规则文件名:保持默认的 rewrite.htm 即可。
    • 文件名称规则:这里可以根据你的需求自定义,例如设置为 {typedir}/{aid}.html
    • (可选) 列表命名规则:例如设置 list_{tid}_{page}.html
    • (可选) 文章命名规则:例如设置 {typedir}/{Y}/{M}{D}/{aid}.html
  5. 点击 “保存更改”,后台会自动生成一个 rewrite.htm 文件,这个文件包含了伪静态的规则。

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

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

这是最关键的一步,你需要将后台生成的 rewrite.htm 文件中的规则,复制到网站根目录下的 .htaccess 文件中。

创建 .htaccess 文件

在你的网站根目录(public_htmlwww 目录)下,创建一个名为 .htaccess 的文件。注意文件名前面有一个点

获取并配置规则

  • 直接复制后台生成的规则(推荐)

    1. 在你的 DedeCMS 网站根目录下,找到 rewrite.htm 文件。
    2. 用文本编辑器(如 Notepad++, VS Code)打开它。
    3. 复制 <IfModule mod_rewrite.c></IfModule> 之间的所有内容。
    4. 粘贴到你刚刚创建的 .htaccess 文件中。
    5. 保存 .htaccess 文件。
  • 使用通用规则模板

如果你找不到 rewrite.htm 文件,或者想手动配置,可以使用以下通用规则,请将下面的代码复制到你的 .htaccess 文件中。

# 开启重写引擎
<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On
  # --- DedeCMS 5.7/5.8 通用规则 ---
  # 绑定域名到子目录 (如果需要,取消下面一行的注释并修改域名和目录)
  # RewriteCond %{HTTP_HOST} ^(www\.)?yourdomain\.com$ [NC]
  # RewriteCond %{REQUEST_URI} !^/subdir/
  # RewriteRule ^(.*)$ /subdir/$1 [L]
  # 处理列表页
  RewriteRule ^(.*)/list_([0-9]+)\.html$ $1/list.php?tid=$2
  RewriteRule ^(.*)/list_([0-9]+)_([0-9]+)\.html$ $1/list.php?tid=$2&PageNo=$3
  # 处理文章页
  RewriteRule ^(.*)/view_([0-9]+)\.html$ $1/view.php?aid=$2
  # 处理封面页
  RewriteRule ^(.*)/category/([0-9]+)\.html$ $1/category.php/$2.html
  # 处理搜索页
  RewriteRule ^(.*)/search\.html$ $1/search.php
  # 处理标签页
  RewriteRule ^(.*)/tags\.html$ $1/tags.php
  RewriteRule ^(.*)/tag/([^/]+)$ $1/tags.php?/$2
  # 处理图片、软件等特殊模型
  RewriteRule ^(.*)/special/([0-9]+)\.html$ $1/special.php?tid=$2
  # 如果你的URL规则更复杂,{typedir}/{aid}.html,则需要更精细的规则
  # RewriteRule ^([^/]+)/([0-9]+)\.html$ /plus/view.php?aid=$2
  # RewriteRule ^([^/]+)/([0-9]+)_([0-9]+)\.html$ /plus/view.php?aid=$2&pageno=$3
  # RewriteRule ^([^/]+)/list_([0-9]+)\.html$ /plus/list.php?tid=$2
  # RewriteRule ^([^/]+)/list_([0-9]+)_([0-9]+)\.html$ /plus/list.php?tid=$2&PageNo=$3
</IfModule>

说明:

  • Options +FollowSymlinks -MultiviewsFollowSymlinks 表示允许跟随符号链接,-Multiviews 是为了避免 Apache 的多视图功能干扰重写规则。
  • RewriteEngine On:开启重写引擎。
  • RewriteRule:核心重写指令,格式为 RewriteRule 模板 替换串 [标志]
    • 模板:是你希望用户访问的 URL 样式(如 list_2_3.html)。
    • 替换串:是服务器实际执行的动态文件(如 list.php?tid=2&PageNo=3)。
    • 标志[L] 表示如果这条规则匹配成功,则停止后续的规则匹配。

第四步:设置目录权限

确保你的网站根目录(以及 uploadsdata 等目录)具有正确的执行权限,对于 Linux 服务器,通常网站根目录的权限设置为 755,文件权限设置为 644

# 设置目录权限为 755
find /path/to/your/website -type d -exec chmod 755 {} \;
# 设置文件权限为 644
find /path/to/your/website -type f -exec chmod 644 {} \;

第五步:更新缓存和测试

  1. 更新 DedeCMS 缓存:在 DedeCMS 后台,进入 系统 -> 性能优化 -> 更新系统缓存,点击执行。
  2. 生成 HTML:进入 主页生成栏目管理,重新生成你想要伪静态的页面列表和文章。
  3. 测试
    • 访问你的网站首页,看看是否正常。
    • 点击一个栏目列表页,观察 URL 是否变成了 list_1.html 或类似的形式,并且内容能正常显示。
    • 点击一篇文章,观察 URL 是否变成了 view_123.html 的形式,并且内容能正常显示。
    • 如果出现 404 Not Found 错误,请检查:
      • Apache 的 mod_rewrite 模块是否开启。
      • .htaccess 文件是否在网站根目录。
      • .htaccess 文件中的规则是否正确。
      • 网站目录权限是否正确。

常见问题与解决方案

  • 问题1:出现 404 Not Found 错误。

    • 原因:最常见的原因是 mod_rewrite 模块未开启,或者 .htaccess 文件中的规则有误。
    • 解决:重新检查第一步和第三步。
  • 问题2:首页正常,但栏目页和文章页 404。

    • 原因.htaccess 文件中的规则不完整,或者没有在后台生成对应的页面。
    • 解决:确保你的 .htaccess 规则覆盖了你所有需要的页面类型(列表、文章等),并重新生成页面。
  • 问题3:网站打开速度变慢。

    • 原因.htaccess 规则过于复杂或有冲突,导致 Apache 每次请求都要进行大量匹配。
    • 解决:检查并简化 .htaccess 规则,移除不必要的规则。
  • 问题4:图片、CSS、JS 等静态文件无法加载。

    • 原因.htaccess 规则错误地匹配了静态文件的请求。
    • 解决:在 .htaccess 文件的开头添加以下规则,以排除对静态文件的重写:
      <IfModule mod_rewrite.c>
        RewriteEngine On
        # 排除对静态文件的重写
        RewriteCond %{REQUEST_URI} !\.(php|html|htm|jpg|jpeg|gif|png|css|js|ico)$ [NC]
        RewriteCond %{REQUEST_URI} !^/dede/ [NC] # 排除后台目录
        RewriteCond %{REQUEST_URI} !^/special/ [NC] # 排除特定目录(如果需要)
        # ... 你的其他 RewriteRule 规则 ...
      </IfModule>

遵循以上步骤,你就可以成功地为你的 DedeCMS 网站配置好伪静态了。

-- 展开阅读全文 --
头像
织梦field typeid怎么用?
« 上一篇 2025-12-17
dede伪静态htaccess规则如何配置?
下一篇 » 2025-12-17
取消
微信二维码
支付宝二维码

目录[+]