← 术语图鉴

重定向

Redirect · 也叫 跳转 / 301 / 302 / 308

服务器告诉访客"你要的东西在另一个地址",浏览器随即自动去新地址。

你可能会说:

  • “网站换了域名,外面那些旧链接怎么办?”
  • “301 和 302 有什么区别,该用哪个?”

它是什么

重定向靠 3 开头的状态码加一个新地址完成。301 和 308 表示永久搬走,搜索引擎会把旧地址的权重转到新地址;302 和 307 表示暂时去别处,旧地址仍然有效。

改版、换域名、调整网址结构时,要给每个旧地址安排好去处。否则外面已有的链接、搜索结果、别人的收藏夹,都会变成 404。

服务器上的重定向看不到网址里 # 后面的部分。浏览器跟随重定向时会把井号原样带到新地址;要按井号的内容分流,只能在新页面里用脚本处理。

打个比方

像店铺搬家后贴在旧门口的告示:写着"永久迁至某某路"(301),还是"装修期间临时在隔壁营业"(302),老顾客和地图软件的反应完全不同。

在这个网站里

自动驾驶知识站并入本站那天,e2e.felixwithai.com 的所有请求都改成 301 跳到 space.felixwithai.com/e2e;旧的井号链接(如 #/term/bev)被原样带过来,再由页面脚本换成 /e2e/terms/bev。本站正式入口换成 www 后,e2e 直接 301 到 www.felixwithai.com/e2e,space 则 301 到 www 的相同路径并保留查询参数。在终端运行 curl -I https://e2e.felixwithai.com,第一行就是 301。

容易搞混的地方

常见误解

用 JavaScript 跳转和用状态码跳转,效果一样

正确理解

人看起来一样,程序看起来不同:搜索引擎和很多工具只认服务器返回的 301、302,不会运行页面里的脚本。

你可以这样告诉 AI

复制下面这段,贴给你的 AI

这次改版会让哪些旧网址失效?请列出旧网址到新网址的对应表,在服务器端配置好 301 重定向,再给我一条命令逐个验证:旧地址返回 301,并且指向正确的新地址。

先知道

  • HTTP 状态码——服务器回应每个请求时附带的三位数字,告诉对方这次是成功、找不到,还是出错了。

接着看

  • 路由——决定"哪个网址对应哪个页面、交给哪段代码处理"的规则。

在这些课里出现