对一个长期运维的静态站点做全量链接图审计、索引补全与备份暴露面清理,并完成主导航折行改造与产品模块互跳闭环。全部数字来自线上真实扫描。
站点累计沉淀了近八百个页面,但从首页出发能按链接走到的不足三成。绝大多数页面不是没有内容,而是没有任何入口——用户与搜索引擎都到不了,等于不存在。
同时发现一类安全侧问题:历史版本页面的备份文件直接留在网站根目录,虽然没有导航入口,但只要知道文件名就能直接访问。
统计前先按目录前缀排除发布快照与备份(hash 命名的快照目录、.bak 文件),否则数字会被历史快照污染,得出完全错误的结论。随后从首页做广度遍历,得到真正的可达集合。
只用“孤岛总数”无法动手,因此对每个目录再算四组数:目录内页面数、孤岛数、目录 index 是否存在、index 是否可达及其链出子页数。四种组合直接对应四种修法。
| 断点形态 | 现象 | 处理方式 |
|---|---|---|
| index 不可达 | 目录首页是活的,主站没有任何链接指向它 | 主站补一条入口,一次救回整目录 |
| index 可达但列表残缺 | 目录有 148 篇,索引只列 34 篇 | 按原卡片样式补全索引 |
| index 是“建设中”空壳 | 451 字节的占位页 | 按站点配色重写整页 |
| 本就该无入口 | 中枢内部治理页 | 不动,避免误报为缺陷 |
受影响的索引页结构各不相同——编号卡片、图文卡片、极简卡片、纯列表、空壳页五种形态——按各自原样式分别补全,没有套用同一个模板。
| 目录 | 补前 | 补后 | 说明 |
|---|---|---|---|
| 白皮书库 | 34 篇 | 148 篇 | 按编号卡片续编,头部文案同步改为实际总数 |
| 技术中心 | 13 张卡 | 39 张卡 | 含 market 子目录,复用原有 svg 图标 |
| 作品库 | 6 张卡 | 25 张卡 | 含 autonomy、kunlun-world 子站 |
| 技术博客 | 空壳页 | 9 篇 | 整页重建,保留站点配色与页脚导航 |
| 企业研判 | 3 家 | 24 家 | 补全量研报列表 |
另外在首页页脚补了七个目录级入口——白皮书库、成果归档、企业实践、技术博客、道统文库、标准规范、English。这几条链接本身不承载内容,但把六个原本整个不可达的目录一次性接通:成果归档从 42 个孤岛降到 6,标准规范从 8 降到 1。
主导航原有十二项,需要加入产品模块入口而不能删减任何一项。原实现是横向滚动加隐藏滚动条——窄屏下尾部项目被裁掉,用户看不出可滑动。改为桌面折行、手机保留横向滚动。
| 视口宽度 | 导航高度 | 表现 |
|---|---|---|
| 1920 / 1440 / 1366 / 1280 | 62px | 十三项单行,与改造前高度完全一致 |
| 1024 | 87px | 折为两行(10 + 3),无孤字行 |
| 768 / 390 | 106px | 单行横向滑动,避免小屏被导航吃掉五分之一屏 |
webroot 下的历史备份全部移出网站目录,存放于同级归档目录并按相对路径重命名,避免不同目录同名备份互相覆盖。移动后抽验旧地址,返回 404 或 403。
| 抽验地址 | 结果 | 含义 |
|---|---|---|
| /index_bak_solar_202611060906.html | 404 | 旧版首页已不可访问 |
| /_archive_baks/ | 404 | 历史归档目录已不可访问 |
| /tech/index.html.bak-fill-20261107185013 | 403 | 补索引导致的备份未复现暴露 |
这里有一个容易反复的细节:补索引时新生成的备份文件又落回 webroot。收尾必须再扫一遍备份文件,否则刚清理掉的暴露面立刻复现。
按真实用户路径逐层核验时发现三处断点,均已修复: