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>

 



posted on 2026-06-30 18:34  浩空之梦  阅读(7)  评论(0)    收藏  举报