织梦5.7伪静态规则

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

Nginx 伪静态规则

对于 Nginx 环境,您需要将以下规则添加到您网站配置文件中的 location / { ... } 块里,这个文件通常位于 /usr/local/nginx/conf/vhosts/您的域名.conf/etc/nginx/sites-available/您的域名

规则代码:

location / {
    if (!-e $request_filename) {
        rewrite "^/index\.html$" /index.php last;
        rewrite "^/list-([0-9]+)\.html$" /plus/list.php?tid=$1 last;
        rewrite "^/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$" /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 last;
        rewrite "^/view-([0-9]+)-([0-9]+)\.html$" /plus/view.php?arcID=$1&pageno=$2 last;
        rewrite "^/category/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([0-9]+)\.html$" /plus/list.php?tid=$3 last;
        rewrite "^/category/([a-zA-Z0-9]+)/([0-9]+)\.html$" /plus/list.php?tid=$2 last;
        rewrite "^/category/([a-zA-Z0-9]+)\.html$" /plus/list.php?tid=$1 last;
        rewrite "^/archives/([a-zA-Z0-9]+)/([0-9]+)\.html$" /plus/view.php?arcID=$2 last;
        rewrite "^/archives/([0-9]+)\.html$" /plus/view.php?arcID=$1 last;
        rewrite "^/tags\.html$" /tags.php last;
        rewrite "^/tags/([a-zA-Z0-9]+)\.html$" /tags.php?/$1 last;
        rewrite "^/tag/([a-zA-Z0-9]+)\.html$" /tags.php?/$1 last;
        rewrite "^/search\.html$" /search.php last;
        rewrite "^/search/([a-zA-Z0-9]+)\.html$" /search.php?keyword=$1 last;
        rewrite "^/feedback\.html$" /plus/feedback.php last;
        rewrite "^/question-([0-9]+)\.html$" /plus/question.php?itemid=$1 last;
        rewrite "^/sitemap\.html$" /sitemap.php last;
        rewrite "^/sitemap-([a-zA-Z0-9]+)\.html$" /sitemap.php?type=$1 last;
        rewrite "^/data/([a-zA-Z0-9]+)\.html$" /data/$1.html last;
        rewrite "^/template/([a-zA-Z0-9]+)\.html$" /template/$1.html last;
        rewrite "^/static/([a-zA-Z0-9]+)\.html$" /static/$1.html last;
        rewrite "^/special/([a-zA-Z0-9]+)\.html$" /special/index.php?tid=$1 last;
        rewrite "^/special/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)\.html$" /special/index.php?tid=$1&channel=$2 last;
        rewrite "^/special/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([0-9]+)\.html$" /special/index.php?tid=$1&channel=$2&PageNo=$3 last;
    }
}

设置步骤:

  1. 找到配置文件:使用 SSH 登录您的服务器,找到 Nginx 网站配置文件。
  2. 编辑文件:使用 vinano 等编辑器打开文件。
    vi /usr/local/nginx/conf/vhosts/您的域名.conf
  3. 添加规则:在 server 块内,找到 location / { ... } 部分,将上面的规则代码完整复制进去。
  4. 保存并退出:在 vi 中按 ESC,然后输入 wq 保存退出。
  5. 重启 Nginx:使配置生效。
    nginx -s reload
    # 或者使用 systemctl
    systemctl reload nginx

Apache 伪静态规则

对于 Apache 环境,您需要将以下规则保存到 .htaccess 文件中,并确保该文件位于您网站的根目录(/public_html//wwwroot/)。

规则代码:

<IfModule mod_rewrite.c>
  RewriteEngine On
  # 禁止访问 .htaccess 文件
  RewriteRule \.(htaccess)$ / [F]
  # 织梦CMS主页面
  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]
  # 分类页(URL美化)
  RewriteRule ^category/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([0-9]+)\.html$ /plus/list.php?tid=$3 [L]
  RewriteRule ^category/([a-zA-Z0-9]+)/([0-9]+)\.html$ /plus/list.php?tid=$2 [L]
  RewriteRule ^category/([a-zA-Z0-9]+)\.html$ /plus/list.php?tid=$1 [L]
  # 文章页(URL美化)
  RewriteRule ^archives/([a-zA-Z0-9]+)/([0-9]+)\.html$ /plus/view.php?arcID=$2 [L]
  RewriteRule ^archives/([0-9]+)\.html$ /plus/view.php?arcID=$1 [L]
  # 标签页
  RewriteRule ^tags\.html$ /tags.php [L]
  RewriteRule ^tags/([a-zA-Z0-9]+)\.html$ /tags.php?/$1 [L]
  RewriteRule ^tag/([a-zA-Z0-9]+)\.html$ /tags.php?/$1 [L]
  # 搜索页
  RewriteRule ^search\.html$ /search.php [L]
  RewriteRule ^search/([a-zA-Z0-9]+)\.html$ /search.php?keyword=$1 [L]
  # 其他页面
  RewriteRule ^feedback\.html$ /plus/feedback.php [L]
  RewriteRule ^question-([0-9]+)\.html$ /plus/question.php?itemid=$1 [L]
  RewriteRule ^sitemap\.html$ /sitemap.php [L]
  RewriteRule ^sitemap-([a-zA-Z0-9]+)\.html$ /sitemap.php?type=$1 [L]
  # 静态资源目录
  RewriteRule ^data/([a-zA-Z0-9]+)\.html$ /data/$1.html [L]
  RewriteRule ^template/([a-zA-Z0-9]+)\.html$ /template/$1.html [L]
  RewriteRule ^static/([a-zA-Z0-9]+)\.html$ /static/$1.html [L]
  # 专题页
  RewriteRule ^special/([a-zA-Z0-9]+)\.html$ /special/index.php?tid=$1 [L]
  RewriteRule ^special/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)\.html$ /special/index.php?tid=$1&channel=$2 [L]
  RewriteRule ^special/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([0-9]+)\.html$ /special/index.php?tid=$1&channel=$2&PageNo=$3 [L]
</IfModule>

设置步骤:

  1. 创建或编辑 .htaccess 文件:在网站根目录下创建一个名为 .htaccess 的文件。
  2. 粘贴规则:将上面的规则代码完整复制到 .htaccess 文件中。
  3. 保存文件
  4. 检查 Apache 模块:确保 Apache 的 mod_rewrite 模块已启用,您可以通过在 httpd.conf 文件中检查是否存在 LoadModule rewrite_module modules/mod_rewrite.so 这一行(没有被注释掉)来确认,如果需要,请取消注释并重启 Apache。
    systemctl restart apache2
    # 或者
    service httpd restart

织梦后台设置(非常重要!)

仅仅添加伪静态规则是不够的,您还必须在织梦后台开启并配置伪静态功能。

  1. 登录织梦后台:使用您的管理员账号登录。

  2. 进入“系统” -> “核心设置”

    • 找到 “是否使用伪静态” 选项,将其设置为 “是”
    • (可选但推荐) 找到 “文件命名规则”,您可以将其设置为类似 {typedir}/{aid}.html{typedir}/{Y}/{M}/{D}/{aid}.html 的格式,这样生成的链接会更美观、更利于SEO。
  3. 进入“栏目管理”

    • 编辑每一个栏目,在“高级选项”中,确保 “列表命名规则”文章命名规则 已经设置为您想要的格式(list-{tid}.html{typedir}/{aid}.html)。
  4. 进入“系统” -> “SQL命令行工具”

    • 在输入框中执行以下 SQL 语句,以确保数据库中的文章和栏目链接格式与伪静态规则匹配。
      -- 更新文章链接为静态格式
      UPDATE dede_archives SET redirecturl='';

    -- 更新栏目链接为静态格式 UPDATE dede_arctype SET typedir='';

    
    > **注意**:`dede_` 是织梦默认的表前缀,如果您的网站修改了表前缀,请相应更改。
  5. 更新网站缓存和HTML

    • 在后台顶部点击 “更新缓存”
    • 进入 “生成” 菜单,依次点击 “更新主页HTML”“更新栏目HTML”“更新文档HTML”,这一步会根据您设置的规则重新生成所有静态页面。

常见问题与注意事项

  1. 规则不生效

    • 检查文件位置:确保 .htaccess 文件在网站根目录,且 Nginx 配置文件正确。
    • 检查权限:确保 .htaccess 文件和 Nginx 配置文件的权限正确(.htaccess 通常为 644)。
    • 检查模块:Apache 确保开启了 mod_rewrite;Nginx 确保编译时包含了 rewrite 模块(通常默认包含)。
    • 清除缓存:浏览器缓存、CDN缓存、服务器缓存(如 OPcache)都可能影响效果,尝试清除后重试。
  2. 404错误

    这通常意味着规则与实际的URL不匹配,或者后台没有正确生成静态文件,请仔细核对规则,并确保后台的“是否使用伪静态”已开启。

  3. 服务器环境

    上述规则是针对标准环境的,如果您的服务器是面板(如宝塔、Plesk、cPanel)管理的,请通过面板的“伪静态”或“URL重写”功能来添加规则,而不是手动编辑配置文件,这样更安全方便。

  4. URL美化

    • 本规则中包含了 /category//archives/ 等美化路径,如果您不需要,可以删除相关的 rewrite 规则,只保留核心的 list-xxx.htmlview-xxx.html 规则即可。

通过以上步骤,您的织梦5.7网站应该就能成功配置并使用伪静态了。

-- 展开阅读全文 --
头像
织梦模板文件描述乱码
« 上一篇 03-26
c语言写一个判断素数的函数
下一篇 » 03-26
取消
微信二维码
支付宝二维码

目录[+]