先说结论
城市站的地址长这样:
kunming-336ec45550.jamsw.com
kunming 是城市,336ec45550 是 hash。只用城市名会出三个问题。
问题一:重名
全国有多个"城关镇"、"朝阳区"(北京/长春),英文 slug 撞车是常态。
问题二:改名
城市改名或拼音调整(比如"淮阴"→"淮安"),纯 slug 的 URL 就失效了。带 hash 的地址里,hash 才是唯一标识,slug 可以随名字更新。
问题三:猜测与遍历
纯城市名的子域可以被批量猜测、遍历抓取。hash 让地址不可枚举,降低无效抓取。
代价
- URL 不好看、不好记(对本地客户来说影响很小,他们从门户点进来)
- hash 一旦生成不能改(改了就是新站)
- 独立域名绑定时,URL 与 hash 脱钩
URL 的三种形态
| 场景 | 形态 |
|---|---|
| 泛子域 | {slug}-{hash}.根域名 |
| 路径兜底 | /s/{slug}-{hash}/ |
| 客户自己的域名 | www.客户域名.com |
变更策略
- slug 变:保留 hash,旧地址 301 到新地址
- 站点合并:旧站 301 到保留站
- 站点下线:410 或 301 到上级地区页,不要直接 404