使用步骤
- 每行一条:旧路径,然后是新路径或完整网址。
- 选择服务器和状态码(永久搬家用 301)。
- 修正工具提示的链式跳转、循环和重复。
- 复制或下载规则,加到服务器配置里。
参数说明
- 301 / 308
- 永久跳转,搜索引擎会把排名转到新网址。308 还会保留请求方法(POST 仍是 POST)。
- 302 / 307
- 临时跳转,旧网址仍保留在索引里。
- Nginx(map)
- 用查表方式匹配,规则有成百上千条也很快。
一份输入,五种输出
每一行是旧路径,后面跟新路径或完整网址,用空格、制表符或逗号分隔。以 # 开头的行会被忽略。以状态码 301、域名 example.com 和下面两行为例:
/old-page /new-page
/blog/2019/post https://example.com/articles/post
Nginx
location = /old-page { return 301 /new-page; }
location = /blog/2019/post { return 301 https://example.com/articles/post; }
Apache .htaccess
RedirectMatch 301 ^/old-page$ /new-page
RedirectMatch 301 ^/blog/2019/post$ https://example.com/articles/post
Caddy
example.com {
redir /old-page /new-page 301
redir /blog/2019/post https://example.com/articles/post 301
}
Cloudflare(每条规则一行 CSV,没有表头:来源、目标、状态码)
example.com/old-page,https://example.com/new-page,301
example.com/blog/2019/post,https://example.com/articles/post,301
Nginx(map) 会生成一段放在 http 部分的 map $uri $redirect_to 块,以及放在 server 部分、带 return 301 $redirect_to 的简短 if 块。如果你在列表里再加上 /a /b 和 /b /c,检查器会报告链式跳转 /a → /b → /c,并建议把 /a 直接指向 /c。
常见问题
什么是链式跳转?
A → B → C。每多跳一次页面变慢、抓取配额被浪费,应该让 A 直接跳到 C。
Apache 为什么用 RedirectMatch 而不是 Redirect?
Redirect 按前缀匹配,/old 会连带 /old-page 一起跳。带 ^ 和 $ 的 RedirectMatch 只匹配完全相同的路径。
规则能处理查询参数吗?
规则按路径匹配,大多数服务器会把查询参数原样带过去;但针对某个 ?id=1 的规则需要额外条件,所以工具会对这类行给出提示。
隐私说明
本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。