301重定向代码生成器

输入旧地址和新地址,选择重定向类型和要重定向的内容,然后选择服务器。您会得到应保存的确切文件,内容采用该服务器自己的语法。

免费 在浏览器中运行 核对于2026年11月10日星期二

路径,例如 /old-page/,或完整地址,例如 https://old.example.com/old-page/。服务器只匹配路径。

访问者应该到达的完整地址,以 https:// 或 http:// 开头。

301和308表示永久迁移,302和307表示临时迁移。

结果

Cloudflare 规则 — 在控制面板中填写的字段。本工具不使用 Cloudflare API。
Apache:.htaccess
nginx 配置
IIS:web.config
Caddyfile
Netlify:_redirects
HTML 重定向页面

此工具在您的浏览器中运行。您输入的内容不会发送给我们。

使用方法

  1. 在 旧地址或路径 中输入旧地址或路径,例如 /old-page/。
  2. 在 新地址 中输入新地址,然后选择 重定向类型 和 要重定向的内容。
  3. 选择 服务器或平台。结果中会显示代码,并附有复制和下载按钮。
  4. 把文件保存到服务器上,然后用请求工具检查每个重定向,之后再依赖它。

规则如何匹配

路径规则匹配您输入的路径,并把访问者带到新地址。页面规则只匹配该页面,无论末尾是否带斜杠。文件夹规则匹配该文件夹及其下的所有地址,并把路径的其余部分带到新文件夹。

主机规则匹配旧地址的主机名。域名规则把路径和查询字符串带到新域名的相同路径。http 转 https 规则匹配通过 http 发出的请求,两条 www 规则各自匹配一个主机名。

  • 服务器规则会保留查询字符串,因此 /old-page/?ref=1会变成 /new-page/?ref=1。
  • 正则表达式由路径生成:其中的点、方括号和其他特殊字符都会被转义,因此规则只匹配您输入的文字。

选择哪一个状态码

Google 的重定向指南(英文)说:“301和308状态码表示页面已永久迁移到新位置。”它把302和307列为临时重定向,并把网站迁移到新域名列为典型情况:“您已将网站迁移到新域名,并希望过渡尽可能无缝。”它还补充:“当您确定重定向不会被撤销时,才使用永久重定向。”

永久重定向会告诉搜索引擎在结果中显示新地址。临时重定向会在结果中保留旧地址,这只适用于预期旧页面会回来的情况。

各服务器之间的差异

每个服务器书写重定向的方式不同,有些服务器并不接受所有状态码。本工具为每个服务器写出它支持的最接近的代码,并在结果中说明。

  • IIS URL Rewrite 支持301、302、303和307,不支持308,因此在那里选择308会变成301。
  • Netlify 记录的是用302代替307,并且没有列出308,因此307变为302,308变为301。
  • Apache mod_alias 的 Redirect 匹配前缀,而 mod_rewrite 的 RewriteRule 只匹配您给出的精确路径。
  • Cloudflare 单一重定向是控制面板中的规则。本工具展示其字段,但不会创建规则。

meta refresh 与 JavaScript:最后的选择

Google 的指南(英文)按 Google 正确解读它们的可能性排列重定向方式:先是服务器端重定向,然后是 meta refresh,最后是 JavaScript。Google 说,0秒的即时 meta refresh 会被解读为永久重定向,延迟的则被解读为临时重定向。

Google 的指南还说:“只有在无法使用服务器端或 meta refresh 重定向时,才使用 JavaScript 重定向。”它又补充,渲染可能失败,因此 Google 可能永远看不到 JavaScript 重定向。本工具生成的 HTML 中,301和308使用0秒的 meta refresh,302和307使用5秒的 meta refresh。

示例:一个页面以301迁移

在旧地址中输入 /old-page/,在新地址中输入 https://example.com/new-page/,重定向类型选301,要重定向的内容选单个页面。Apache 结果是下面的 RewriteRule 行,其他每个服务器都有自己的文件,目标相同。

该规则精确匹配该页面,无论末尾是否带斜杠,服务器规则都会保留查询字符串。Cloudflare 的字段为过滤表达式和静态目标,状态码为301。

服务器 文件 完成重定向的行
Apache .htaccess RewriteRule ^old-page/?$ https://example.com/new-page/ [R=301,L,QSA]
nginx nginx-redirect.conf return 301 "https://example.com/new-page/$is_args$args";
Caddy Caddyfile redir @page "https://example.com/new-page/{?query}" 301
Netlify _redirects /old-page https://example.com/new-page/ 301
Cloudflare 控制面板字段 自定义过滤表达式:(http.request.uri.path eq "/old-page" or http.request.uri.path eq "/old-page/")
HTML 页面 redirect.html meta refresh 属性 content="0; url=https://example.com/new-page/"

常见问题

应该使用301还是302?

当旧页面已永久迁移,希望搜索引擎显示新地址时,使用301。只有迁移是临时的时(例如维护期间),才使用302。

308和301一样吗?

两者都表示页面已永久迁移。308会保留请求方法,因此 POST 仍然是 POST,而301可能会把它变为 GET。IIS URL Rewrite 不支持308,因此本工具为 IIS 写出301。

为什么 Apache 的 Redirect 行覆盖的范围比 RewriteRule 更大?

Redirect 指令是前缀匹配:它也会把 /old-page/anything 发送到新地址。RewriteRule 只匹配精确的页面,这就是它在结果中是当前生效行的原因。

这个工具会把任何内容发送到我的服务器或 Cloudflare 吗?

不会。代码在您的浏览器中生成,您输入的内容不会离开页面。Cloudflare 规则必须在控制面板中手动创建,因此工具只列出其字段。

为什么 meta refresh 只是最后的选择?

Google 的指南对方法排序:服务器端重定向优先,然后是 meta refresh,JavaScript 排在最后。页面文件也只能把访问者带到一个地址,因此文件夹或整个域名需要服务器规则。

为什么 Netlify 会把307变为302?

Netlify 的重定向选项建议用302代替它不支持的307。文件中有一条注释说明了这一点。

资料来源

数据和文字最近核对于2026年11月10日星期二。

我们使用必要的 Cookie 来运行网站。经您同意后,Google 还会使用广告 Cookie 展示个性化广告。如果您拒绝,仍会看到广告,但广告不会个性化。