返回列表 发帖
查看: 497|回复: 9

Discuz X5.0 手机版版块列表页,页码跳转到第2页生成伪静态链接导致404

7

主题

11

回帖

1

粉丝

初学乍练

贡献
0 点
金币
3 个
产品版本
X5.0+
发表于 2026-5-2 11:45:52 |云南| 查看全部 |阅读模式
环境:
Discuz! X5.0 Open Release 20260410
Ubuntu 24.04
Nginx 1.28.3
PHP 8.3.30
MySQL 8.0.45

问题描述:
两个全新安装的 Discuz X5.0 站点都出现同样问题。后台 SEO → URL 静态化中,所有可用项均未勾选:
Rewrite 兼容性:否
仅对游客有效:否
手机版模式 Rewrite:否

问题只发生在手机版版块,列表页底部,分页跳转功能。

现象:
上一页、下一页都正常。
页码跳转到第 3 页、第 4 页、第 5 页也正常,链接是动态地址,例如:
forum.php?mod=forumdisplay&fid=2&page=3&mobile=2

但只要通过页码跳转,选择第 2 页,就会跳到:
forum-2-2.html

由于站点没有开启伪静态,也没有配置 Rewrite,所以该地址返回 Nginx 404。

正常可访问的第 2 页动态地址是:
forum.php?mod=forumdisplay&fid=2&page=2&mobile=2

初步排查:
source/app/forum/module/forumdisplay.php 里 $multipage 传入 multi() 的地址本身是动态地址:
forum.php?mod=forumdisplay&fid={fid}

template/default/touch/forum/forumdisplay.php 里只是输出 $multipage。

source/class/helper/helper_page.php 中手机版分页会额外输出 hidden input:
id="multipage_url"

其中 forumdisplay 页面会调用:
rewriteoutput('forum_forumdisplay', 1, $_G['siteurl'], $_G['fid'], '{page}', '', '')

怀疑手机版页码跳转脚本在跳转第 2 页时使用了这个 multipage_url,导致即使后台关闭 URL 静态化,仍然生成 forum-2-2.html。

请问这是 Discuz X5.0 手机版分页 bug 吗?有没有官方修复方案?

两个网站地址在下,如果有时间,可以去测试:是手机版本才有的问题:
www.dshome.com
www.it22.com



回复

使用道具 举报

99

主题

685

回帖

27

粉丝

管理员

贡献
33 点
金币
75 个
产品版本
X5.0+
发表于 2026-5-2 13:22:34 |北京| 查看全部
似乎是个老坑,和5.0无关,底部分页跳转的函数逻辑有点匪夷所思
回复

使用道具 举报

18

主题

162

回帖

2

粉丝

炉火纯青

贡献
2 点
金币
5 个
产品版本
X5.0+
QQ
发表于 2026-5-2 18:47:16 |广西来自手机 | 查看全部
以前碰到过,伪静态设置错误的问题,
回复

使用道具 举报

7

主题

11

回帖

1

粉丝

初学乍练

贡献
0 点
金币
3 个
产品版本
X5.0+
 楼主| 发表于 2026-5-2 21:04:45 |云南| 查看全部
时光无声 发表于 2026-5-2 18:47
以前碰到过,伪静态设置错误的问题,

但是网站伪静态都关了啦,都没有开
回复

使用道具 举报

7

主题

11

回帖

1

粉丝

初学乍练

贡献
0 点
金币
3 个
产品版本
X5.0+
 楼主| 发表于 2026-5-2 21:08:45 |云南| 查看全部
Nginx 环境,后台 URL 静态化全部关闭,手机版页码跳转第 2 页仍然生成 forum-2-2.html,是否为 X5.0 手机版分页 bug?
回复

使用道具 举报

18

主题

162

回帖

2

粉丝

炉火纯青

贡献
2 点
金币
5 个
产品版本
X5.0+
QQ
发表于 2026-5-3 14:28:09 |广西来自手机 | 查看全部
laowen0223 发表于 2026-5-2 21:08
Nginx 环境,后台 URL 静态化全部关闭,手机版页码跳转第 2 页仍然生成 forum-2-2.html,是否为 X5.0 手机 ...

重启Nginx试试,肯定不是x5问题的,以前x3.5的时候我就遇到过,忘记怎么修复了,印象中就是伪静态问题
回复

使用道具 举报

18

主题

162

回帖

2

粉丝

炉火纯青

贡献
2 点
金币
5 个
产品版本
X5.0+
QQ
发表于 2026-5-3 14:29:45 |广西来自手机 | 查看全部
开启伪静态
Rewrite 兼容性:是
仅对游客有效:否
手机版模式 Rewrite:是
回复

使用道具 举报

7

主题

11

回帖

1

粉丝

初学乍练

贡献
0 点
金币
3 个
产品版本
X5.0+
 楼主| 发表于 2026-5-4 18:44:47 |云南| 查看全部
时光无声 发表于 2026-5-3 14:29
开启伪静态
Rewrite 兼容性:是
仅对游客有效:否

其实根这个设置无关,开启了之后还是同样的问题。
它就是跳转第2页才打不开,除了第2页,别的任何页面都跳转正常。
回复

使用道具 举报

18

主题

162

回帖

2

粉丝

炉火纯青

贡献
2 点
金币
5 个
产品版本
X5.0+
QQ
发表于 2026-5-5 18:25:57 |广西来自手机 | 查看全部
laowen0223 发表于 2026-5-4 18:44
其实根这个设置无关,开启了之后还是同样的问题。
它就是跳转第2页才打不开,除了第2页,别的任何页面都 ...

更新缓存,重启Nginx和php,看可以吗?
不可以备份之前的站点伪静态,然后全部删除,使用dz默认伪静态规则,再更新网站缓存,重启Nginx,清除浏览器缓存
回复

使用道具 举报

7

主题

11

回帖

1

粉丝

初学乍练

贡献
0 点
金币
3 个
产品版本
X5.0+
 楼主| 发表于 2026-5-5 21:19:13 |云南| 查看全部
宝塔 → 网站 → www.it22.com → 设置 → 伪静态 → 0.当前

加入代码如下:rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forum.php?mod=forumdisplay&fid=$1&page=$2 last;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2026-6-16 16:58 , Processed in 0.039097 second(s), 11 queries , Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2026 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表