feat: sync latest GPT SEO routing and docs

This commit is contained in:
root
2026-04-18 01:31:44 +08:00
parent c8fb6956ef
commit 5cb11b4476
48 changed files with 6000 additions and 172 deletions

View File

@@ -0,0 +1,327 @@
# 08 GPT模板其它服务器最新版对齐交接 2026-04-18
这份文档给“其它服务器上的 Codex / 接手同学”使用。
目标不是让对方自己猜,而是让对方直接知道:
1. 这次要同步的是哪一条线
2. 哪些文件必须一起更新
3. 上线后先验什么
4. 出现异常时先查哪里
## 1. 先定边界
这次不是“从老模板迁到 GPT 模板”。
前提是:
1. 目标服务器原本就是 GPT 模板
2. 目标服务器也在跑 `videoGpt1`
3. 现在要做的是把它对齐到当前这台机器的最新 GPT 主线版本
这次同步的不是老模板,也不是全站所有样式。
这次同步的是:
1. `videoGpt1` 这条 GPT 模板线
2. GPT 模板详情 / 播放 / 搜索页 SEO 修复
3. slug-only 详情兜底
4. sitemap 修复
5. 前台详情异常补充日志
不要混入:
1. `1001-1005` 老模板
2. 其它组还没更新到当前 GPT 主线版本的站
3. 与 GPT 模板无关的历史试验文件
## 2. 这次同步的核心目标
把“原本也是 GPT 模板”的其它服务器,对齐到当前主线,重点保证下面 5 件事:
1. slug-only 详情页不要再硬 `404`
2. `/detail/pinyin-xxx` 这类链接能兜底到真实详情页
3. sitemap 主入口和视频分页正常
4. GPT 模板搜索页 / 播放页 / 详情页主标题正常
5. 如果前台详情页再出现 ThinkPHP 错页,能在日志里抓到异常栈
## 3. 必须同步的代码文件
下面这些文件建议按“必须同步”处理,不要只挑一半。
### 3.1 路由与详情兜底
- [SiteContext.php](/www/wwwroot/diff-maccms/SEONexus/code/app/services/SiteContext.php)
- [VideoService.php](/www/wwwroot/diff-maccms/SEONexus/code/app/services/VideoService.php)
- [router.php](/www/wwwroot/diff-maccms/SEONexus/code/app/home/config/router.php)
这一组负责:
1. 域名上下文正确落到 GPT 站
2. `/detail/:strPinyin`
3. `/detail/pinyin-:strPinyin`
4. slug-only 详情 fallback
5. 播放路由的详情取数兼容
### 3.2 sitemap 修复
- [VideoSiteMapLogic.php](/www/wwwroot/diff-maccms/SEONexus/code/app/task/logic/VideoSiteMapLogic.php)
- [SiteMapLogic.php](/www/wwwroot/diff-maccms/SEONexus/code/app/task/logic/SiteMapLogic.php)
这一组负责:
1. sitemap 目录递归创建
2. 详情 URL slug 规范化
3. 空 slug 回退
### 3.3 前台异常抓栈
- [ExceptionHandle.php](/www/wwwroot/diff-maccms/SEONexus/code/app/ExceptionHandle.php)
这一项是这次补的关键兜底。
作用:
1. 当前台 detail / play 类请求再出现 ThinkPHP 错页
2. 自动记录 host、url、route 参数、UA、异常 message、file、line
3. 方便后续按时间点抓栈
### 3.4 GPT 模板详情 / 播放 / 搜索页模板
- [getVideoInfo.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/video/getVideoInfo.html)
- [getVideoPlayUrl.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html)
- [dplayer.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/player/engine/dplayer.html)
- [title.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/detail_main/title.html)
搜索页:
- [search_header_simple.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_simple.html)
- [search_header_seo.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_seo.html)
- [search_header_rich.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_rich.html)
- [search_header_centered.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_centered.html)
- [search_header_media.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_media.html)
播放页:
- [play_01.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_01.html)
- [play_02.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_02.html)
- [play_03.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_03.html)
- [play_04.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_04.html)
- [play_05.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_05.html)
## 4. 推荐同步顺序
不要乱序,建议按下面顺序做:
1. 先同步服务层与路由:
- `SiteContext.php`
- `VideoService.php`
- `router.php`
2. 再同步 sitemap
- `VideoSiteMapLogic.php`
- `SiteMapLogic.php`
3. 再同步 GPT 模板:
- `getVideoInfo.html`
- `getVideoPlayUrl.html`
- 搜索页模板
- 播放页模板
- `detail_main/title.html`
4. 最后同步异常处理:
- `ExceptionHandle.php`
原因:
1. 先保证路由和取数能通
2. 再保证 sitemap 不继续产坏链
3. 再保证页面展示层正常
4. 最后补抓栈,方便后续继续盯
## 5. 其它服务器接手 Codex 的执行步骤
### 第一步:先确认该服务器是不是同一条 GPT 模板线
先确认目标站是否真的使用 `videoGpt1`
如果不是,就不要直接照搬这份文档。
如果是,就按“同模板线升级”处理,不要按“跨模板迁移”处理。
### 第二步:同步上面的必须文件
如果是同一套 GPT 模板代码目录,优先直接按文件覆盖同步。
如果是人工搬运,至少保证:
1. 服务层 3 个文件一起到位
2. sitemap 2 个文件一起到位
3. GPT 模板文件整组到位
4. `ExceptionHandle.php` 最后到位
### 第三步:清理运行时缓存
同步完代码后,至少做一次运行时清理,避免旧编译模板或旧路由缓存继续干扰。
重点关注:
1. 模板缓存
2. runtime 缓存
3. sitemap 输出缓存
如果接手的 Codex 不确定怎么清,就先只做安全清理,不要删业务数据。
### 第四步:先验 4 类 URL
每台 GPT 服务器完成最新版对齐后,至少要验这 4 类:
1. 首页
2. 搜索页
3. 详情页
4. 播放页
## 6. 上线后最小验收清单
### 6.1 详情页兜底
至少抽查 2 类:
1. 正常详情 URL
2. slug-only / pinyin 详情 URL
例如:
```text
/detail/pinyin-xxxxx
/film/slug/id
/movie/id-slug
```
通过标准:
1. 返回 `200`
2. canonical 正常
3. 页面主 `h1` 正常
4. 不再硬跳 ThinkPHP 错页
### 6.2 搜索页
通过标准:
1. 搜索页 `h1` 有内容
2. 不再空标题
3. 搜索结果页 title / canonical 正常
### 6.3 播放页
通过标准:
1. 播放页主标题正常
2. 标题不再掉成空值
3. 能从播放页正常回到详情页
### 6.4 sitemap
至少验:
1. `/sitemap.xml`
2. `/sitemap_index.xml`
3. `/sitemap-main.xml`
通过标准:
1. 返回 `200`
2. 能打开
3. 详情 URL 不再明显带空 slug
## 7. 推荐验收命令
### 看状态码
```bash
curl -I -L -s 'https://example.com/detail/pinyin-xxx'
```
### 看 nocache
```bash
curl -I -L -s 'https://example.com/detail/pinyin-xxx?__nocache=1'
```
### 抽取 title / canonical / h1
```bash
curl -L -s 'https://example.com/detail/pinyin-xxx' | rg -o '<title>.*?</title>|<link rel=\"canonical\".*?>|<h1[^>]*>.*?</h1>' -N
```
## 8. 如果仍出现 ThinkPHP 错页,先怎么查
这次已经补了前台 detail/play 异常日志。
如果其它服务器也同步了 [ExceptionHandle.php](/www/wwwroot/diff-maccms/SEONexus/code/app/ExceptionHandle.php),下次再出现:
1. 先记下精确时间
- 例如:`2026-04-18 14:23:15 +08:00`
2. 记下完整 URL
3. 去 runtime 日志里搜:
- `frontend_detail_exception`
重点看:
1. `host`
2. `url`
3. `route.strPinyin`
4. `route.intVId`
5. `exception_message`
6. `exception_file`
7. `exception_line`
## 9. 给其它服务器 Codex 的接手话术
可以直接复制这段给对方:
```text
这次不是把别的模板迁到 GPT。
目标服务器原本也是 GPT 模板,现在要做的是把它对齐到当前最新 GPT 主线版本。
请只处理 videoGpt1 相关代码,不要混入 1001-1005 老模板。
必须一起同步:
1. app/services/SiteContext.php
2. app/services/VideoService.php
3. app/home/config/router.php
4. app/task/logic/VideoSiteMapLogic.php
5. app/task/logic/SiteMapLogic.php
6. app/ExceptionHandle.php
7. app/home/view/videoGpt1/video/getVideoInfo.html
8. app/home/view/videoGpt1/video/getVideoPlayUrl.html
9. app/home/view/videoGpt1/module/detail_main/title.html
10. app/home/view/videoGpt1/module/player/engine/dplayer.html
11. app/home/view/videoGpt1/module/search/ 下 5 个搜索页模板
12. app/home/view/videoGpt1/module/play/ 下 5 个播放页模板
更新完成后先验:
1. 首页
2. 搜索页
3. 详情页
4. 播放页
5. sitemap.xml / sitemap_index.xml / sitemap-main.xml
重点确认:
1. slug-only 详情不再 404
2. 搜索页 h1 正常
3. 播放页 h1 正常
4. canonical 正常
5. 如再出现 ThinkPHP 错页,去查 frontend_detail_exception 日志
```
## 10. 接手前建议先看
先看这些文档再动代码:
1. [README.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/README.md)
2. [00-GPT模板SEO公共总览-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/00-GPT模板SEO公共总览-2026-04-18.md)
3. [07-GPT模板交接说明-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/07-GPT模板交接说明-2026-04-18.md)
## 11. 一句话结论
> 其它服务器如果原本也是 GPT 模板现在要对齐到当前最新版不要只改几个模板文件必须把路由、服务层、sitemap 和异常抓栈一起同步,否则最容易出现“页面样式像更新了,但 slug 详情 / sitemap / 偶发异常仍停在旧版本”的半更新问题。