15 KiB
2026-04-17 当前阶段总结
这份文档用于把本轮关于前端 nginx、搜索页缓存、安全排障、国内蜘蛛恢复的关键结论压缩成一页。
适用场景:
- 你想快速回顾“现在到底定下了什么”
- 新的 Codex 会话需要 1 分钟接手
- 需要把这轮结论转发给同事或运维
一句话结论
当前这轮工作已经从“问题排查”进入“规则固化 + 证据补强”阶段:
- 前端 nginx 长期规则已经定型
- 搜索页双入口兼容已经确认必要
?__nocache=1已作为标准排障入口固定下来sogou恢复已拿到真实深页200样本,不再只是推测
1. 前端 nginx 当前正式规则
当前正式上线入口:
长期规则:
- 搜索页:
/get-index/get/index- cache key 带
$args
- 详情页 / 播放页 / 分类页 / 榜单页:
- cache key 不带
$args
- cache key 不带
- 所有动态页:
- 支持
?__nocache=1
- 支持
- 排障优先看:
X-Cache-StatusX-Cache-ModeX-Managed-Spider
2. 为什么搜索页必须双入口兼容
已经确认:
www.jpjdxs.com- 搜索入口:
/get-index
- 搜索入口:
www.jingxifa.com- 搜索入口:
/get-index
- 搜索入口:
www.hyjssb.com- 搜索入口:
/get/index
- 搜索入口:
同时还通过规则探测确认:
/get-index?wd=test- 会走
X-Cache-Mode: with-args
- 会走
/get/index?wd=test- 如果不单独兼容,仍可能落回
path-only
- 如果不单独兼容,仍可能落回
因此:
- 双兼容不是冗余项
- 是站群真实路由差异决定的必要项
3. 当前最实用的排障规则
以后再遇到“代码像没生效”“页面像串页”“蜘蛛像异常”时,统一按这个顺序:
- 先看
X-Cache-Status - 再看
X-Cache-Mode - 再看
X-Managed-Spider - 若仍怀疑前端缓存顶旧 HTML,用:
?__nocache=1
- 如果
?__nocache=1正常,而普通访问异常,优先清前端缓存
4. 受管蜘蛛映射当前正确读法
当前需要特别注意:
managed_spiders.map.conf.example受管蜘蛛映射-最优方案.txt
更接近“样例”和“推荐结构”,不是线上实时快照。
所以以后判断某蜘蛛当前是否已纳入 managed spider,不要只看样例文件。
正确优先级:
- 先看线上真实响应头
X-Managed-Spider - 再看线上真实
managed_spiders.map.conf - 最后才参考样例文件
5. 国内蜘蛛当前阶段判断
baiduspider
- 恢复结论仍成立
- 但单个时间窗样本有时很少
- 不要用某一个小窗口直接否定百度恢复
sogou
当前已不宜再简单说成“还是 403 为主”。
2026-04-17T17:30:02+08:00 这个窗口里:
- 总请求数:
10 200: 9404: 1
命中的 200 深页样本包括:
www.jingxifa.com /video-detail/cheng-shi-jian-ke-190614www.vikau.com /vodplay/xiu-zhen-zhe-zhi-fu-qin-de-cai-fu-110943-maotai-36www.cnzhenbang.com /category/dong-manwww.hyjssb.com /movie/.../154180
唯一 404 仍是 hyjssb 旧路径残留,不代表当前真实路由异常。
因此当前更准确的说法是:
sogou已经进入恢复初期- 已拿到真实首页、分类、详情、播放
200样本 - 历史旧
403仍然会拖累整体统计观感
bytespider
- 已出现
200样本 - 但当前主要还是
robots/ 首页层 - 还没到像
sogou那样有明显多站深页恢复
6. 最新日志读取口径
当前 domain-spider-crawl 的 summary 结构已经变更。
旧口径常用字段:
by_bot
新口径应优先看:
bot_bucketssummary_status_bucketssummary_records
所以如果后续看到:
by_bot为空latest看起来像没国内蜘蛛
不要立刻下结论。
先确认:
- 是否是 summary 字段结构变了
- 是否需要结合最近几个 run 一起看
7. 当前阶段最稳的结论
如果只保留 5 句,当前最稳的是:
- 正式上线模板优先用
站点伪静态-最终发布版.txt - 搜索页必须兼容
/get-index和/get/index - 排障先看响应头,不要先怀疑代码
sogou恢复已拿到真实深页200样本- 日志摘要读取已经换字段,不能再只看
by_bot
8. 详情页 slug-only 404 修复
2026-04-17 已补一轮详情页历史坏链接兜底,重点针对:
/detail/pinyin-xxx/detail/xxx- 没有
id、只有 slug 的旧外链或旧 sitemap 残留
当前修复口径:
- 路由层补放行,不再让这类 URL 直接死在路由 404
- 服务层会先做 slug 归一化:
- 例如把
pinyin-se-ji-shi-kong-yuan-sheng-ban继续尝试成se-ji-shi-kong-yuan-sheng-ban
- 例如把
- 如果库里仍查不到对应 slug:
- 不直接 404
- 按域名做稳定随机绑定,后续同 slug 重复访问会尽量落到同一个视频
这条规则的目标不是“技术上兼容一下”,而是:
- 先把历史坏入口从 404 池里移出来
- 降低蜘蛛撞到硬 404 的概率
- 给后续 7 日收录和首页词冲量留入口
2026-04-17 线上补修:liangzuan.net 域名恢复、无 id 详情兜底、HEAD 兼容修复
现象
liangzuan.net整站一度出现首页、分类、详情、播放、搜索全部 404。- 用户重点反馈这类 URL 不允许再 404:
https://www.liangzuan.net/detail/pinyin-se-ji-shi-kong-yuan-sheng-ban
- 同时线上探测发现一个隐蔽问题:
- 浏览器
GET可以打开的深层详情页,HEAD请求仍然返回 404。 - 这会导致监控、探测器、部分抓取链路把页面误判为失效。
- 浏览器
根因
1. 站点域名配置丢失
- 数据库
domain表中,liangzuan.net记录已经消失。 - 这不是模板渲染问题,而是域名上下文直接丢了,导致整站路由命中后仍无法正确解析站点配置。
2. 站点上下文仍走旧域名解析方式
SiteContext里部分逻辑还在用旧的:rootDomain()DomainModel::getDomainOnCacheByDomain(...)
- 对
www、裸域、运行时 host 的兼容不够稳。
3. GPT 模板路由只注册了 GET
- 详情页、播放页、历史兼容深链都能被浏览器正常访问。
- 但
HEAD请求没有命中路由,所以会直接落到 404。
已完成修复
1. 恢复 liangzuan.net 域名记录
- 基于历史 bootstrap 包重新注册域名。
- 重新绑定模板
videoGpt1。 - 重新应用该域名的 SEO bootstrap 配置。
结果:
- 站点首页重新恢复
200。 - 域名上下文重新可用。
2. 修复 SiteContext 域名解析
文件:
/www/wwwroot/diff-maccms/SEONexus/code/app/services/SiteContext.php
调整:
getViewConfig()和getTemplate()改为优先使用DomainModel::resolveDomainContextByHost(...)- 对当前请求 host 做运行时解析
- 旧缓存解析方式保留为兜底
效果:
- 裸域、
www、运行时 host 命中更稳 - 不再因为旧解析链导致模板/站点配置取错
3. 修复“无 id 的详情页”兜底策略
文件:
/www/wwwroot/diff-maccms/SEONexus/code/app/services/VideoService.php/www/wwwroot/diff-maccms/SEONexus/code/app/home/config/router.php
调整:
- 详情路由支持仅 slug 访问
- 支持
pinyin-前缀 slug 归一化 - 当 URL 不带 id、数据库没有直接匹配记录时,进入稳定兜底绑定
- 避免再因
requestedVId = 0写入错误绑定
效果:
detail/pinyin-...这类旧深链不再直接 404- 即使缺少 id,也会落到可展示的详情内容
4. 修复 GPT 模板深链 HEAD 返回 404
文件:
/www/wwwroot/diff-maccms/SEONexus/code/app/home/config/router.php
调整:
- 在
videoGpt1分支新增统一注册器:Route::rule(..., 'GET|HEAD')
- 公共路由与冻结 family 路由统一支持
GET和HEAD - 历史兼容深链注册器也一起继承该行为
效果:
- 之前
GET=200 / HEAD=404的详情深链,现在两者都为200
线上复测结果
1. 无 id 详情页
GET https://www.liangzuan.net/detail/pinyin-se-ji-shi-kong-yuan-sheng-ban- 已返回
200
2. 常规详情页
GET https://www.liangzuan.net/film/sheng-dan-bu-du-xing-meng-fei-si-lian-qu/154124- 已返回
200
3. 深链 HEAD 探测
-
HEAD https://www.liangzuan.net/detail/pinyin-se-ji-shi-kong-yuan-sheng-ban -
已返回
200 -
HEAD https://www.liangzuan.net/film/sheng-dan-bu-du-xing-meng-fei-si-lian-qu/154124 -
已返回
200
对 7 日收录目标的直接价值
- 站点不再因为域名配置丢失而整站失活
- 旧深链、无 id 深链、历史兼容详情页不再轻易 404
- 抓取探针和监控不会再把可访问详情页误判为失效页
- 这一步属于收录链路里的基础设施修复,已经把“入口级拦路虎”清掉了
下一阶段建议主线
- 批量扫描 GPT 模板所有详情/播放/分类深链,清理剩余 404 模式。
- 针对
/detail/pinyin-*、/film/*、/play/*输出结构化 URL 巡检报表。 - 补做站群级 sitemap、robots、内链入口一致性检查,优先服务 7 日收录目标。
2026-04-17 站群收录入口补修:Sitemap 统一恢复
扫描发现
- GPT 站群首页和
robots.txt普遍可访问。 - 但多站点
sitemap.xml、sitemap_index.xml、sitemap-main.xml、sitemap-videos-1.xml统一返回 404。 - 模板页脚和
robots.txt实际都在输出:/sitemap_index.xml
- 这意味着蜘蛛会被主动引导到 404 的 XML 入口,直接拖累 7 日收录目标。
深层根因
1. 标准 sitemap 入口缺少显式兼容
文件:
/www/wwwroot/diff-maccms/SEONexus/code/app/home/config/router.php
处理:
- 补了以下标准入口兼容:
/sitemap.xml/sitemap_index.xml/sitemap-main.xml/sitemap-videos-:page.xml
2. 生成目录缺失导致 sitemap 任务直接失败
文件:
/www/wwwroot/diff-maccms/SEONexus/code/app/task/logic/VideoSiteMapLogic.php/www/wwwroot/diff-maccms/SEONexus/code/app/task/logic/SiteMapLogic.php
问题:
storage/SiteMap/目录当时不存在- 逻辑里仅
mkdir($strDomainDir),不会递归创建父目录 - 所以首次生成会直接报错,整个 XML 文件链路断掉
修复:
- 改为
mkdir($strDomainDir, 0777, true)
已完成验证
liangzuan.net
https://www.liangzuan.net/sitemap_index.xml=> 200https://www.liangzuan.net/sitemap-main.xml=> 200https://www.liangzuan.net/sitemap-videos-1.xml=> 200
chuanjiafeng.net
https://www.chuanjiafeng.net/sitemap_index.xml=> 200
当前执行状态
- 已启动 GPT 站群全量
VideoSiteMap生成任务 - 任务正在逐域名落盘:
storage/SiteMap/<domain>/sitemap_index.xmlstorage/SiteMap/<domain>/sitemap-main.xmlstorage/SiteMap/<domain>/sitemap-videos-*.xmlstorage/SiteMap/<domain>/video-list-*.json
对 7 日收录目标的价值
- 站群不再把蜘蛛导向失效的 XML 入口
- 每个域名开始具备可提交、可抓取、可扩展的视频 XML 分页
- 这一步是“收录入口层”的关键修复,优先级非常高
二次修正:sitemap 详情 URL 空 slug 问题
在恢复 XML 后继续抽检时,又发现一类会伤收录质量的问题:
- 部分
sitemap-videos-1.xml中详情链接出现空 slug - 例如:
/film//210/detail/-210
根因:
VideoSiteMapLogic直接用v_name_en生成详情 URL- 但部分视频数据的
v_name_en为空
修复:
- 在
VideoSiteMapLogic内新增normalizeVideoSlug(...) - 优先使用
v_name_en - 若为空,则回退到
v_name - 再做稳定 slug 归一化,保证至少输出可抓取的详情路径
修复后抽样结果:
https://www.liangzuan.net/film/wei-xian-de-fei-pang/210=> GET 200 / HEAD 200https://www.cnzhenbang.com/detail/wei-xian-de-fei-pang-210=> GET 200 / HEAD 200https://www.liangzuan.net/film/mo-li-mei/213=> GET 200 / HEAD 200https://www.cnzhenbang.com/detail/mo-li-mei-213=> GET 200 / HEAD 200
轨迹探针验收:5 个 GPT 站首页→搜索→详情→播放全通过
已使用自动样本发现 + 轨迹探针,对以下 5 个站做真实链路验收:
liangzuan.netcnzhenbang.comcodohealth.comjingxifa.comgz-yxsw.com
结果:
- 首页:全部
200 - 搜索:全部
200 - 详情:全部
200 - 播放:全部
200 all_passed = 1
这说明当前 GPT 站群至少在抽样层面,已经不是“只有 sitemap 文件可用”,而是“收录入口 -> 搜索承接 -> 详情页 -> 播放页”这一条真实访问链路可用。
扩样验收:15 个 GPT 站真实链路全通过
在 5 个样板站通过后,继续扩样到 15 个 GPT 域名:
liangzuan.netcnzhenbang.comcodohealth.comjingxifa.comgz-yxsw.comglae.ccgxhongzhuang.comjpjdxs.comjxxgygy.comlcdchq.comleici1940.comlgyz.netoronorent.compcslcl.comsdxtwnc.com
结果:
- 自动样本发现全部
sample_status=passed - 15 站首页全部
200 - 15 站搜索页全部
200 - 15 站详情页全部
200 - 15 站播放页全部
200 - 15 站
all_passed=1
说明:
- 当前 GPT 站群的主链路并不是零星恢复,而是已经具备批量稳定性
- URL family 虽然各不相同,但都已经通过真实轨迹验收
搜索页 H1 二次收口
在搜索链路复查时,又发现一类“可访问但不够强 SEO”的问题:
- 部分搜索页虽然已返回
200 - 但
h1只输出裸关键词,或输出“相关内容 / 查询词 / 结果页”这类弱意图标题 - 这会削弱搜索页对关键词与搜索意图的直接承接,不利于收录页稳定识别
本轮已统一修正 videoGpt1 搜索头模板:
app/home/view/videoGpt1/module/search/search_header_simple.htmlapp/home/view/videoGpt1/module/search/search_header_seo.htmlapp/home/view/videoGpt1/module/search/search_header_rich.htmlapp/home/view/videoGpt1/module/search/search_header_centered.html
修正原则:
- 搜索页
h1不再只显示裸关键词 - 搜索页
h1不再只显示“搜索结果 / 查询词 / 站内搜索 / 相关内容”这类空壳文案 - 统一改为“关键词 + 搜索结果 / 搜索意图词”的可索引表达
线上 ?__nocache=1 抽样结果:
https://www.liangzuan.net/get/index?keyword=liangzuan.net&__nocache=1h1 => “liangzuan.net” 搜索结果
https://www.cnzhenbang.com/query?keyword=菜鸟臻榜&__nocache=1h1 => 菜鸟臻榜 搜索结果
https://www.jingxifa.com/get-index?keyword=京淅发影院&__nocache=1h1 => 京淅发影院 搜索结果
附带确认:
- 各域名搜索入口并不统一,不能用单一
/search?keyword=判断线上是否异常 - 当前已确认示例:
liangzuan.net => /get/index?keyword=...cnzhenbang.com => /query?keyword=...jingxifa.com => /get-index?keyword=...