dede5.5 伪静态

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

伪静态的主要目的是为了提升搜索引擎优化(SEO)效果,让网址看起来更像静态的 HTML 页面(如 https://www.example.com/a/123.html),而不是动态的 PHP 页面(如 https://www.example.com/a.php?id=123),这有利于搜索引擎抓取,也可能在一定程度上提升用户体验和网站加载速度。

dede5.5 伪静态
(图片来源网络,侵删)

DedeCMS 5.5 的伪静态设置主要分为三步

  1. 开启后台伪静态功能
  2. 配置服务器重写规则
  3. 设置文章命名规则

第一步:开启 DedeCMS 后台伪静态功能

这是最基础的一步,告诉 DedeCMS 系统你需要使用伪静态。

  1. 登录后台:使用你的管理员账号登录 DedeCMS 后台。
  2. 进入系统设置:在左侧菜单栏中,找到并点击 “系统” -> “系统基本参数”
  3. 选择核心设置:在“系统基本参数”页面中,点击顶部的 “核心设置” 选项卡。
  4. 修改“是否使用伪静态”:找到名为 “是否使用伪静态” 的选项,将其值从 “否” 修改为 “是”
  5. 保存:页面最下方点击 “保存” 按钮。

完成这一步后,DedeCMS 在生成链接时,就会尝试使用你设置的静态规则格式。


第二步:配置服务器重写规则

这是最关键的一步,服务器需要知道如何将一个看似静态的 URL 请求,真正地“翻译”并指向到对应的动态 PHP 脚本,你需要根据你的服务器环境,选择对应的配置方法。

dede5.5 伪静态
(图片来源网络,侵删)

重要提示:在进行以下操作前,强烈建议先备份你的网站配置文件(如 .htaccessnginx.conf 等),以防配置错误导致网站无法访问。

A. Apache 服务器 (使用 .htaccess 文件)

Apache 服务器是目前最常用的环境,DedeCMS 默认会在根目录下提供一个 httpd.ini.txt 文件,你需要将其重命名为 .htaccess,并确保内容正确。

  1. 重命名文件

    • 通过 FTP 或文件管理器,将网站根目录下的 httpd.ini.txt 文件重命名为 .htaccess
    • 如果你的网站根目录下已经有 .htaccess 文件,请将 httpd.ini.txt 中的内容追加到现有文件的末尾,不要覆盖。
  2. 检查 .htaccess 文件内容: 确保 .htaccess 文件中包含以下 DedeCMS 5.5 的伪静态规则:

    # 如果网站安装在子目录,请将 RewriteBase / 修改为 RewriteBase /你的子目录
    # RewriteBase /dedecms
    RewriteEngine On
    # 绑定域名到目录,如果不需要可以删除
    # RewriteCond %{HTTP_HOST} ^(www.)?abc.com$
    # RewriteRule ^(/|$) /site/ [L]
    # 伪静态规则开始
    # 首页
    RewriteRule ^index\.html$ /index.php [L]
    # 列表页
    RewriteRule ^category/([0-9]+)/?$ /plus/list.php?tid=$1 [L]
    RewriteRule ^category/([0-9]+)_([0-9]+)/?$ /plus/list.php?tid=$1&totalresult=$2 [L]
    RewriteRule ^category/([0-9]+)_([0-9]+)_([0-9]+)/?$ /plus/list.php?tid=$1&PageNo=$3 [L]
    # 文章页
    RewriteRule ^archives/([0-9]+)/?$ /plus/view.php?aid=$1 [L]
    RewriteRule ^archives/([0-9]+)_([0-9]+)/?$ /plus/view.php?aid=$1&pageno=$2 [L]
    # 标签页
    RewriteRule ^tags\.html$ /tags.php [L]
    RewriteRule ^tags/([^/]+)/?$ /tags.php?/$1 [L]
    RewriteRule ^tags/([^/]+)/([0-9]+)/?$ /tags.php?/$1/$2 [L]
    # 搜索页
    RewriteRule ^search\.html$ /search.php [L]
    # 自定义页面(单页面)
    RewriteRule ^custom/([0-9]+)/?$ /plus/view.php?aid=$1 [L]
    # 伪静态规则结束

B. Nginx 服务器 (修改 nginx.conf 文件)

Nginx 的配置通常在 nginx.conf 文件中,或者在网站的配置文件里(如 vhost/your_domain.conf)。

dede5.5 伪静态
(图片来源网络,侵删)
  1. 找到配置文件:登录你的服务器,找到 Nginx 的配置文件。

  2. 添加重写规则:在 server { ... } 块中,添加以下规则:

    server {
        # ... 其他配置 ...
        # 绑定域名
        server_name your_domain.com www.your_domain.com;
        # 网站根目录
        root /path/to/your/website;
        # ... 其他配置 ...
        # 伪静态规则开始
        location / {
            # 如果请求的文件或目录不存在,则进行重写
            if (!-e $request_filename) {
                rewrite "^/index\.html$" /index.php last;
                rewrite "^/category/([0-9]+)/?$" /plus/list.php?tid=$1 last;
                rewrite "^/category/([0-9]+)_([0-9]+)/?$" /plus/list.php?tid=$1&totalresult=$2 last;
                rewrite "^/category/([0-9]+)_([0-9]+)_([0-9]+)/?$" /plus/list.php?tid=$1&PageNo=$3 last;
                rewrite "^/archives/([0-9]+)/?$" /plus/view.php?aid=$1 last;
                rewrite "^/archives/([0-9]+)_([0-9]+)/?$" /plus/view.php?aid=$1&pageno=$2 last;
                rewrite "^/tags\.html$" /tags.php last;
                rewrite "^/tags/([^/]+)/?$" /tags.php?/$1 last;
                rewrite "^/tags/([^/]+)/([0-9]+)/?$" /tags.php?/$1/$2 last;
                rewrite "^/search\.html$" /search.php last;
                rewrite "^/custom/([0-9]+)/?$" /plus/view.php?aid=$1 last;
            }
        }
        # ... 其他配置 ...
    }
  3. 重启 Nginx:保存配置文件后,执行以下命令使配置生效:

    # 对于 CentOS / RHEL
    systemctl restart nginx
    # 对于 Ubuntu / Debian
    systemctl restart nginx
    # 或者
    service nginx restart

第三步:设置文章命名规则

这一步决定了你生成文章时,URL 的具体格式。

  1. 进入栏目管理:在后台,点击 “栏目管理”

  2. 选择顶级栏目:点击你想要设置伪静态规则的顶级栏目(或者“高级选项”中选择了“使用栏目交叉”的栏目)。

  3. 修改文章命名规则:在栏目编辑页面,找到 “高级选项” -> “文章命名规则”

  4. 输入规则:在输入框中填入你想要的命名规则,DedeCMS 提供了一些变量,

    • {typedir}:栏目目录
    • {Y}:年
    • {M}:月
    • {D}:日
    • {aid}:文章ID
    • {cc}:自定义数字

    推荐规则:为了实现 archives/文章ID.html 这样的效果,你可以直接使用:

    {typedir}/{aid}.html

    如果你的栏目是“新闻”,那么生成的文章链接就是 https://www.example.com/news/123.html

  5. 更新栏目缓存:设置完成后,点击 “确定” 保存,为了确保新规则生效,最好去 “系统” -> “一键更新网站” -> “更新栏目HTML”“更新文档HTML”,重新生成一下栏目和文章。


常见问题与排查

  1. 设置后,打开页面出现 404 Not Found 错误

    • 原因:服务器没有正确配置重写规则。
    • 解决
      • Apache:检查 .htaccess 文件是否存在,内容是否正确,文件权限是否正确(通常是 644)。
      • Nginx:检查 nginx.conf 配置是否正确,语法是否有误,并确保已经执行了 nginx -s reload 或重启了 Nginx。
      • 虚拟主机环境:部分虚拟主机服务商需要你在其控制面板后台手动开启伪静态功能,并选择 DedeCMS 的模板,而不是直接上传 .htaccess
  2. 后台更新缓存后,链接又变回了动态的

    • 原因:可能是在“一键更新网站”时,选择了“仅动态浏览”,或者在栏目设置中没有保存新的命名规则。
    • 解决:仔细检查第二步和第三步的设置,确保都已正确保存,然后重新更新网站。
  3. 首页和列表页正常,但文章页是 404

    • 原因:通常是 .htaccess 或 Nginx 规则中缺少了文章页的重写规则。
    • 解决:对照上面的规则,检查你的配置文件中是否包含了 archives/... 相关的重写规则。
  4. URL 中出现 或 & 符号

    • 原因:伪静态规则没有生效,服务器没有将请求转发到 PHP 脚本。
    • 解决:重新检查服务器配置,特别是 Nginx 的 if 语句和 rewrite 规则的语法。

按照以上三个步骤仔细操作,你的 DedeCMS 5.5 网站就能成功配置伪静态了,祝你顺利!

-- 展开阅读全文 --
头像
return在C语言中到底该如何正确使用?
« 上一篇 前天
char转int,如何实现数值转换?
下一篇 » 前天

相关文章

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

目录[+]