·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

discuz伪静态出错404 ,自动跳转成了静态+动态网址

371 2
发表于 2020-8-26 12:16:04 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
设置的目录式的伪静态,但是偶尔打开链接会形成以下形式,请问如何处理呢?
https://www.xxxx.cn/seoarticle/20239/1/forum.php?mod=viewthread&tid=20239
我要说一句 收起回复

评论2

独家记忆Lv.8 发表于 2020-8-26 12:16:51 | 查看全部
Discuz!自身不带此功能的伪静态地址,建议咨询相关实现代码的作者
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-19 10:04:54 | 查看全部
根据你描述的问题,Discuz伪静态规则配置可能存在问题,导致部分链接未能正确重写为伪静态形式,而是保留了动态参数(如`forum.php?mod=viewthread&tid=20239`)。以下是解决该问题的步骤:

---

### 1. **检查伪静态规则是否正确**
   - 确保你在Discuz后台的伪静态规则配置与服务器(如Nginx、Apache)的规则一致。
   - 以Nginx为例,伪静态规则通常如下:
   
  1. rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
  2.      rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
  3.      rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
  4.      rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
  5.      rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
  6.      rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
  7.      rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
  8.      rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
复制代码

   - 如果你使用的是Apache,确保`.htaccess`文件中的规则与Discuz后台的伪静态规则一致。

---

### 2. **检查Discuz后台伪静态设置**
   - 登录Discuz后台,进入 **全局 > SEO设置 > URL静态化**。
   - 确保你选择的伪静态规则与服务器配置的规则一致。
   - 如果是目录式伪静态,确保规则中包含了目录路径(如`seoarticle`)。

---

### 3. **检查链接生成逻辑**
   - 如果部分链接仍然生成了动态形式,可能是模板或插件中直接使用了动态链接。
   - 检查模板文件(如`template/default/forum/viewthread.htm`)中是否有硬编码的动态链接(如`forum.php?mod=viewthread&tid=xxx`)。
   - 如果有,将其替换为伪静态链接生成函数,例如:
   
  1. <a href="forum.php?mod=viewthread&tid={$thread[tid]}">...</a>
复制代码

     替换为:
   
  1. <a href="{forum url('forum.php?mod=viewthread&tid='.$thread['tid'])}">...</a>
复制代码


---

### 4. **清除缓存**
   - 清除Discuz的缓存(后台 **工具 > 更新缓存**)。
   - 如果使用了CDN或浏览器缓存,请确保刷新CDN缓存或清除浏览器缓存。

---

### 5. **检查插件或自定义代码**
   - 如果你安装了第三方插件或自定义了代码,检查是否有插件或代码直接生成了动态链接。
   - 如果有,修改插件或代码,使用Discuz的伪静态链接生成函数。

---

### 6. **测试伪静态规则**
   - 使用工具(如在线伪静态测试工具)测试你的伪静态规则,确保规则能够正确匹配和重写链接。

---

### 7. **服务器日志分析**
   - 如果问题仍然存在,查看服务器的错误日志(如Nginx的`error.log`或Apache的`error_log`),检查是否有404错误或其他相关错误信息。
   - 根据日志中的错误信息调整伪静态规则。

---

### 8. **示例:目录式伪静态规则**
   如果你使用的是目录式伪静态,确保规则中包含目录路径。例如:
  
  1. rewrite ^/seoarticle/([0-9]+)/([0-9]+)/forum.php$ /seoarticle/$1/$2/forum.php last;
  2.    rewrite ^/seoarticle/([0-9]+)/([0-9]+)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /seoarticle/$1/$2/forum.php?mod=viewthread&tid=$3&extra=page%3D$5&page=$4 last;
复制代码


---

通过以上步骤,你应该能够解决Discuz伪静态出错404的问题。如果问题仍然存在,可以提供更多详细信息(如服务器类型、伪静态规则等),我将进一步协助你排查问题。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.15.197.159,GMT+8, 2025-3-29 17:45 , Processed in 0.427304 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表