HTTP 协议中,状态码是服务器向浏览器或 AI 爬虫传递的“机器语言”。在你的路由代码中,正确使用这些状态码是 AEO(AI 引擎优化)的基础。
| 状态码 | 含义 | 在你路由中的作用 | AEO 影响 |
| :--- | :--- | :--- | :--- |
| 404 | Not Found(未找到) | 用户访问了路由表中未注册的路径时触发 | ✅ 告诉 AI “此页面不存在”,防止收录无效链接 |
| 500 | Internal Server Error(服务器内部错误) | 路由已注册但文件丢失,或文件格式不符合三段式规范时触发 | ⚠️ 告诉 AI “页面存在但坏了”,AI 会稍后重试,不会立即删除索引 |
| 状态码 | 含义 | 使用场景 | AEO 注意事项 |
| :--- | :--- | :--- | :--- |
| 200 | OK(成功) | 页面正常加载时的默认状态码(无需手动写 header) | AI 正常抓取并索引内容 |
| 301 | Moved Permanently(永久重定向) | URL 路径变更时使用(如 `/yz-crane` 改为 `/yangzhou/25t-crane`) | ✅ AI 会将旧 URL 的权重完全转移到新 URL |
| 302 | Found(临时重定向) | 临时跳转(如维护页面、登录后跳转) | ⚠️ AI 不会转移权重,仍保留旧 URL 索引 |
| 403 | Forbidden(禁止访问) | 阻止直接访问 `content/` 目录下的原始 txt 文件 | ✅ 保护底层数据不被 AI 绕过模板直接抓取 |
| 410 | Gone(已永久删除) | 明确表示某页面已被有意删除且不会再恢复 | 比 404 更强烈,AI 会更快地从索引中移除该页面 |
php路由前期准备,
要建立一个.htacces,路由重定向文件
# 开启重写引擎
RewriteEngine On
# ✅ 禁止 Apache 自动寻找 index.php,强制所有请求走 Rewrite
DirectoryIndex disabled
# 新增:显式处理根目录,防止被 DirectoryIndex 劫持
RewriteRule ^$ index.php?path= [L,QSA]
# 如果请求的是真实存在的文件或目录,直接访问,不走PHP路由
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 将所有其他请求转发给 index.php,并保留原始路径作为 path 参数
RewriteRule ^(.*)$ index.php?path=$1 [L,QSA]
index.php。路径路由文件,首页用作路由分发
<?php //日志生成 error_log(print_r("PATH: [" . ($_GET['path'] ?? 'MISSING') . "]", true).PHP_EOL, 3, __DIR__ . '/debug.log'); // ========================================== // 第一步:获取并清理用户访问的路径 // ========================================== // isset() 是传统写法,避免直接使用 $_GET['path'] 导致未定义警告 if (isset($_GET['path'])) { // trim() 去除首尾斜杠,防止路径匹配失败 $path = trim($_GET['path'], '/'); } else { // 如果没有传参,默认为空字符串(即首页) $path = ''; } // ========================================== // 第二步:定义显式路由表(AEO语义化路径映射) // ========================================== // 格式:'干净的URL路径' => '实际的内容文件路径' // 新增页面只需在此数组中添加一行,绝对安全,不会产生野页面 $route_map = array( '' => 'content/home.txt', 'yangzhou' => 'content/yangzhou-guide.txt', 'yangzhou/25t-crane' => 'content/yz-25t-overview.txt', 'yangzhou/25t-crane/rental' => 'content/yz-25t-rental.txt', 'safety/wind-load-standards' => 'content/safety-wind.txt' ); // ========================================== // 第三步:路由匹配与内容输出 // ========================================== // array_key_exists() 严格检查键名是否存在于数组中 if (array_key_exists($path, $route_map)) { // 获取对应的内容文件相对路径 $file_path = $route_map[$path]; // file_exists() 检查物理文件是否真的存在 if (file_exists($file_path)) { // 读取纯文本内容 $raw_content = file_get_contents($file_path); // explode() 按分隔符拆分内容,限制最多拆分为3段 $parts = explode('||', $raw_content, 3); // count() 校验内容格式是否符合 "标题||摘要||正文" 的三段式规范 if (count($parts) === 3) { $title = trim($parts[0]); $desc = trim($parts[1]); $body = trim($parts[2]); // 【临时测试输出】后续替换为 template.php 的渲染函数 echo '<h1>' . htmlspecialchars($title) . '</h1>'; echo '<p>摘要:' . htmlspecialchars($desc) . '</p>'; echo '<div>' . $body . '</div>'; } else { // 内容文件格式错误 header('HTTP/1.1 500 Internal Server Error'); echo 'Error: Content file format is invalid.'; } } else { // 路由注册了,但物理文件丢失 header('HTTP/1.1 500 Internal Server Error'); echo 'Error: Content file not found.'; } } else { // ========================================== // 第四步:处理404(未注册的路径) // ========================================== // 必须返回标准的404状态码,告知AI爬虫该页面不存在 header('HTTP/1.1 404 Not Found'); echo '404 Page Not Found'; } ?>
'' => 'content/home.txt',
新建/content/home.txt文件,打开主页以验证是否成功
扬州吊装实战知识平台||提供专业的扬州地区吊车租赁、操作安全及台班费避坑指南。||<p>欢迎来到吊车尹的实战知识库。</p>
浙公网安备 33010602011771号