找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 29|回复: 0

[维护日志] [2026-05-16] [SEO] 旧版 /bbs/ 路径 301 重定向迁移与遗留文件清理

[复制链接]
  • 打卡等级:本地老炮

9337

威望

7448

金钱

1万

贡献

管理员

自由的灵魂

积分
107434
主题
5630
回帖
26661
注册时间
2003-4-10
最后登录
2026-10-2
发表于 2026-5-16 07:50:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
1、问题缘起

在 Bing Webmaster Tools 中发现百度搜索结果中主域名 www.dianbo.org 的收录量异常(前台仅显示 1 条结果,域名显示为 bbs.dianbo.org),怀疑旧版 /bbs/ 路径的链接未正确传递权重。
排查过程中发现的核心问题:

序号问题影响
1/bbs/ 目录下残留 ASP 和 PHP 旧文件依赖不存在的 ASP 环境,无法执行
2根目录遗留 viewthread.php 和 301.inc.php 文件产生二次跳转,未一步到位
3Nginx 重定向规则未完全接管旧链接未正确 301 到新地址
4删除遗留文件后 /viewthread.php 返回 404旧链接权重丢失



2、解决方案

(1)简要技术分析



核心原理:删除服务器上所有旧的跳转文件,让 Nginx 通过精确匹配的 location = 规则,直接接管所有旧路径请求,实现一步到位的 301 永久重定向,确保链接权重完整传递到 Discuz! X3.5 的标准路由。

(2)修改、删除文件列表
操作类型文件路径说明
删除/www/wwwroot/www.dianbo.org/bbs/ 整个目录旧动网论坛遗留文件(含 ASP/PHP)
删除/www/wwwroot/www.dianbo.org/viewthread.php遗留跳转文件
删除/www/wwwroot/www.dianbo.org/301.inc.php遗留跳转配置文件
修改/www/server/panel/vhost/nginx/www.dianbo.org.conf添加/修正 Nginx 301 重定向规则

(3)关键 Nginx 配置代码


添加位置:server { ... } 块内,location ~ \.php$ 规则之前
  1. # ============================================
  2. # 🚀 旧版 /bbs/ 路径 301 永久重定向
  3. # ============================================
  4. # 1. dispbbs.asp - 动网帖子/版块跳转
  5. location = /bbs/dispbbs.asp {
  6.     if ($arg_ID) {
  7.         return 301 [url]https://www.dianbo.org/thread-[/url]$arg_ID-1-1.html;
  8.     }
  9.     if ($arg_BoardID) {
  10.         return 301 [url]https://www.dianbo.org/forum-[/url]$arg_BoardID-1.html;
  11.     }
  12.     return 301 [url]https://www.dianbo.org/;[/url]
  13. }
  14. # 2. dispuser.asp - 用户空间跳转
  15. location = /bbs/dispuser.asp {
  16.     if ($arg_ID) {
  17.         return 301 [url]https://www.dianbo.org/home.php?mod=space&uid=[/url]$arg_ID;
  18.     }
  19.     return 301 [url]https://www.dianbo.org/;[/url]
  20. }
  21. # 3. viewthread.php - 核心帖子跳转(关键!)
  22. location = /bbs/viewthread.php {
  23.     if ($arg_tid) {
  24.         return 301 [url]https://www.dianbo.org/thread-[/url]$arg_tid-1-1.html;
  25.     }
  26.     return 301 [url]https://www.dianbo.org/;[/url]
  27. }
  28. # 4. forumdisplay.php - 版块跳转
  29. location = /bbs/forumdisplay.php {
  30.     if ($arg_fid) {
  31.         return 301 [url]https://www.dianbo.org/forum-[/url]$arg_fid-1.html;
  32.     }
  33.     return 301 [url]https://www.dianbo.org/;[/url]
  34. }
  35. # 5. 根目录遗留 viewthread.php 兜底(文件已删除,用规则捕获)
  36. location = /viewthread.php {
  37.     if ($arg_tid) {
  38.         return 301 [url]https://www.dianbo.org/thread-[/url]$arg_tid-1-1.html;
  39.     }
  40.     return 301 [url]https://www.dianbo.org/;[/url]
  41. }
  42. # 6. 其他 PHP 文件通用跳转
  43. location = /bbs/space.php {
  44.     if ($arg_uid) {
  45.         return 301 [url]https://www.dianbo.org/home.php?mod=space&uid=[/url]$arg_uid;
  46.     }
  47.     return 301 [url]https://www.dianbo.org/;[/url]
  48. }
  49. location = /bbs/group.php {
  50.     if ($arg_gid) {
  51.         return 301 [url]https://www.dianbo.org/forum.php?mod=group&fid=[/url]$arg_gid;
  52.     }
  53.     return 301 [url]https://www.dianbo.org/;[/url]
  54. }
  55. # 7. 其他所有 /bbs/ 路径通用跳转
  56. location ^~ /bbs/ {
  57.     rewrite ^/bbs(/.*)$ [url]https://www.dianbo.org[/url]$1 permanent;
  58. }
  59. # 8. 精确匹配 /bbs
  60. location = /bbs {
  61.     return 301 [url]https://www.dianbo.org/;[/url]
  62. }
复制代码



3、最终实现效果
测试项修改前修改后
curl -I /bbs/viewthread.php?tid=14515Location: /viewthread.php?tid=14515(二次跳转)Location: /thread-14515-1-1.html(一步到位)
/viewthread.php?tid=14515200(由遗留文件处理)301 → thread-14515-1-1.html
/bbs/dispbbs.asp?BoardID=43404301 → /forum-43-1.html
百度收录主域名混乱(显示 bbs.dianbo.org)逐步恢复,权重开始传递

重定向链路对比:

场景修改前修改后
旧帖子链接/bbs/viewthread.php?tid=14515 → /viewthread.php → forum.php?mod=viewthread/bbs/viewthread.php?tid=14515 → thread-14515-1-1.html
SEO 权重传递多次跳转,权重流失一步到位,权重完整传递



4、重要技术沉淀
踩坑点:
问题教训
正则匹配 location ~ 可能被后续规则覆盖使用 location = 精确匹配,优先级最高,避免被其他规则干扰
遗留物理文件会"劫持" Nginx 规则删除旧文件后,Nginx 规则才能真正生效
根目录 viewthread.php 被删除后返回 404需额外添加 location = /viewthread.php 规则捕获外部残留链接
跳转目标未补全伪静态后缀帖子跳转用 thread-$arg_tid-1-1.html,版块跳转用 forum-$arg_fid-1.html
使用 $arg_ 变量比 set 更安全避免变量名冲突(如 $pid 与内置变量冲突)

需要更新到固化摘要的内容:
  • /bbs/ 目录已完全清除,所有旧链接由 Nginx 301 接管
  • 根目录遗留的 viewthread.php 和 301.inc.php 已删除
  • 新增 /viewthread.php 的重定向规则作为兜底
  • 所有旧路径跳转目标均为伪静态地址,一步到位



5、进一步优化的可能性
构想说明优先级
监控旧链接访问日志分析 /bbs/ 路径的访问来源,针对性地提交死链删除⭐⭐ 可选
Bing/Baidu 死链提交将已确认失效的旧链接提交给搜索引擎,加速清除⭐⭐ 可选
检查其他遗留文件扫描根目录是否还有其他 Discuz! 7.0/动网时代的遗留文件⭐ 低



维护日志编号:LOG-20260516-004
影响范围:全站所有 /bbs/ 路径及根目录 viewthread.php 的旧链接
回滚方案:恢复 /bbs/ 目录备份,还原 Nginx 配置文件备份


不懂就搜!点此搜点拨论坛。如果本坛没有,请尝试点此问AI,或跟帖提问。
发帖前注意看置顶帖。
不定期借助AI对点拨论坛陈年老帖进行挖坟回复,打扰勿怪!
在帮助别人的过程中丰富自己
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|点拨论坛 |网站地图

GMT+8, 2026-10-2 04:59 , Processed in 0.040638 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表