301 重定向管理工具 (ptc_301 CLI)
摘要: 这是一个集成了规则解析、Git 自动化、环境溯源功能的 Python 工具,用于高效维护大规模 301 重定向规则,支持单域名精准操作、批量指令流处理以及“智能恢复”方案。
核心命令详解
该工具通过一组快捷指令(或脚本参数)执行,涵盖了从规则增删到提交部署的全生命周期。
1. 基础管理指令
| 指令 | 用法 | 行为描述 |
|---|---|---|
| 301add | 301add <源> <目标> [描述] | 添加或更新重定向规则。自动补全 https 协议。 |
| 301del | 301del <源> [描述] | 直接删除: 从 index.js 中移除匹配的重定向条目。 |
| 301list | 301list | 列表查询: 格式化输出当前 index.js 中所有的重定向映射关系。 |
2. 智能恢复指令 (核心特性)
- 指令:
301restore <域名> [描述] - 深度行为: 与简单的
del不同,restore执行的是安全解绑逻辑:- 规则清理: 从跳转列表中移除该域名。
- 溯源搜索: 自动调用内部接口(如
rf getcf)查询该域名的云端 DNS 记录。 - 日志分析: 深度解析该域名的历史绑定日志,识别其在跳转到
301-gb之前的原始后端服务名(如wordpress-2.0)。 - 方案生成: 最终输出一份详细的“恢复建议”,告知操作者下一步应该将域名重新绑定到哪个具体服务。
3. 批量处理与提交
- 301batch:
301batch [描述] [--no-clear]- 默认读取
redirects.txt。 - 语法支持: 使用
+代表添加(Add),-代表恢复(Restore)。 - 自动化: 处理完成后默认会清空指令文件,除非指定
--no-clear。
- 默认读取
- 301commit:
301commit [描述]- Git 自动化: 自动检测当前版本 -> 创建新分支 -> 生成带统计信息的 Commit Message -> 推送到远程仓库。
批量文件语法 (redirects.txt)
支持空格或 -> 作为分隔符,方便从聊天记录或 Excel 中直接粘贴:
text
# 添加重定向
+ example.com https://target.com
301:newsite.net https://target.com
# 智能恢复 (执行 restore 逻辑)
- oldsite.com
restore:expired.net自动化工作流记录
脚本在执行任何修改命令后,会自动触发以下流程:
- 文件同步: 修改
server/index.js。 - 双重审计:
- 在
change_log.txt中记录技术版本和操作人。 - 在
REDIRECTIONS.md中为运营人员生成可读的中文操作日志。
- 在
- 环境适配: 部署后会输出对应环境的 SCMP 页面链接及版本号,简化审批流程。
注意事项
- 测试模式: 建议先加
-t(或--dry-run) 预览,它会修改本地文件并展示审批版本预览,但不会执行 Git 提交。 - 敏感字段: 脚本已隐藏具体的 API 终端和鉴权参数,通过环境变量注入或内部命令调用。