使用方法
- 在「重定向码」选 301(永久)或 302(临时),默认 301,SEO 改版优先用它。
- 在「源路径」填要被跳转的旧地址(默认 /old.html),以站点根目录的 / 开头。
- 在「目标 URL」填新地址(默认 https://example.com/new.html),可以是完整外链,也可以是站内路径。
- 在「输出风格」选主推写法(Redirect 指令 或 RewriteRule),点「生成片段」或裸按 Enter,结果区同时给出两种写法。
- 点「复制结果」把当前风格对应的片段存到剪贴板,直接粘进 .htaccess 即可生效。
这个工具能解决什么问题
一是把「我会改地址但不会写规则」变成一行可用代码。HtaccessRedirect生成器把 Apache 的 Redirect 与 RewriteRule 语法对普通站长并不友好的痛点解决掉,一个斜杠或转义点号写错就会导致 500 错误,本工具按规范生成,避免手写正则出错。
二是一次给齐两种写法,适配不同服务器环境。有的虚拟主机默认开启 mod_rewrite,有的只支持核心 Redirect 指令。本工具同时产出两条,你按主机支持的那种粘进去即可,不必来回查文档。
三是明确 301 与 302 的 SEO 后果。临时活动用 301 会错误地把旧页权重永久转移、难以撤回;该用 302 时用了 301 是常见事故。本工具把码位做成显式下拉,逼你在生成前先想清楚意图。
四是把「301/302 的 SEO 后果」前置到生成环节。很多事故源于该用 302 时误填 301,导致旧页权重被永久转移、难以撤回。本工具把码位做成显式下拉,逼你在生成前先想清楚意图,而不是事后在服务器日志里排查。
本页不做这些事:不校验目标 URL 是否真实可达(那是你自己的事);不生成带条件判断的复杂重写链;也不自动备份或上传你的 .htaccess。它只负责把三要素(码、源、标)转成合规片段。
计算原理:从三要素拼出合规指令
Redirect 指令:形如 Redirect 码 源路径 目标URL。源路径保持你输入的原始串(含前导 /),目标是完整地址或路径,三者用空格分开。Apache 核心模块直接识别,无需开启 mod_rewrite,最适合单条简单跳转。
RewriteRule:先写 RewriteEngine On 开启引擎,再用 RewriteRule ^源路径$(去掉前导/并转义)$ 目标 [R=码,L]。源路径里的正则特殊字符(如 .)会被转义成 \.,^ 与 $ 锚定首尾,保证只匹配该文件而非前缀;[R=301,L] 表示按该码重定向并停止后续规则。
目标路径的提取:当目标是一个完整 URL(含 http/https)时,RewriteRule 里的目标也常写成站内路径,因此本工具自动从完整 URL 中截取出路径部分(如 https://example.com/new.html → /new.html)。若你输入的就是站内路径,则原样使用。
码位透传:无论 301 还是 302,都只替换指令里的数字,其余结构不变。这样你切换下拉框时,结果会随码位即时更新,不会混用。
性能与编码:所有拼接只是字符串处理,时间与输入长度成线性,即便一次性给几十行源路径也只是逐条拼接;因为全程在浏览器内完成,不存在编码往返,中文注释与路径都能原样保留。
完整示例(默认输入实测)
示例与页面默认值完全一致:码 = 301,源 = /old.html,目标 = https://example.com/new.html。逐项核对:
- Redirect 指令:
Redirect 301 /old.html https://example.com/new.html(源路径原样、目标完整 URL); - RewriteRule 块:
RewriteEngine On之后接RewriteRule ^old\.html$ /new.html [R=301,L]; - 源
/old.html去掉前导 / 得old.html,点号转义为old\.html,首尾锚定成^old\.html$; - 目标从完整 URL 截取出路径
/new.html填入 RewriteRule 右侧; - 码位 301 同时出现在两处,与上方结果区、默认输出完全一致。
把码位切成 302,两处数字会同步变成 302;把源改成 /products/ 这种带斜杠的路径,RewriteRule 会相应生成 ^products/?$ 风格(本工具按字面转义,保持可预期)。
输入范围与对照表
- 重定向码:仅支持 301 与 302 两种下拉选项,二者之外的码位本工具不生成,避免写出不被广泛支持的实验性状态码。
- 源路径:不能为空,建议以 / 开头表示站点根下路径;若忘记写 /,本工具会提示「源路径不能为空或格式异常」。
- 目标 URL:不能为空;可以是 http(s) 完整地址,也可以是站内路径。空目标会触发具体报错而非静默生成。
- 对照表:上方列出 301 与 302 的含义、搜索引擎处理与用途,共 2 行,远小于 12 行,因此全量展示,无需加载更多或导出。
对照表帮助你「选对码」,结果区帮助你「写对规则」;两者配合,既少出错也少踩 SEO 坑。
结果边界与舍入
- 源路径前导 / 的处理。Redirect 指令里源保留前导 /(如
/old.html);RewriteRule 里则去掉前导 / 再做正则锚定,因为 RewriteRule 匹配的是去除了前导 / 的请求路径。本工具按此约定分别生成。 - 正则特殊字符转义。源路径中的
.?+等会被转义,避免它们被当作正则元字符。若你源路径里本就想用正则分组,本工具不解析,一律按字面转义,保证简单可预期。 - 302 与缓存。302 理论上不被浏览器长期缓存,但部分浏览器仍会短期记忆;本工具只负责生成片段,是否缓存由服务器与浏览器决定,不在本页讨论范围。
- 多行输出的换行。RewriteRule 形式由「RewriteEngine On」加一行规则组成,结果区用换行分隔,复制后粘进 .htaccess 即为合法多行配置。
- 全程本地生成。所有拼接只是字符串处理,全部在浏览器内完成,不发起网络请求,也不写 Cookie 或 localStorage。
常见问题
301 和 302 到底该选哪个?
若旧地址永久不再使用、希望搜索引擎把权重转移到新地址,选 301;若是临时活动、A/B 测试或维护页,选 302 以保留原地址权重。改版迁移几乎都用 301,误用 302 会导致新页迟迟不被收录。
源路径为什么一定要以 / 开头?
在 .htaccess 的 Redirect 指令里,源路径相对于站点根目录,惯例以 / 开头(如 /old.html)。若写成 old.html 可能被当成相对当前目录而匹配不到。本工具不强制,但建议你照此填写,并在出错时检查前导斜杠。
RewriteRule 里的点号为什么变成了 \. ?
因为点号在正则里表示「任意字符」,不转义会错误匹配 ofd.html 之类的串。本工具自动把源路径中的点号转义成 \.,保证只精准匹配 old.html 本身。这是标准且安全的做法。
目标填了完整 URL,RewriteRule 里怎么变成路径了?
这是 Apache 的常见写法:Redirect 指令常用完整 URL,而 RewriteRule 右侧常写站内路径(从完整 URL 截取出的 /new.html)。本工具自动做这层转换;若你确实需要 RewriteRule 右侧也是完整 URL,可手动改回,本工具只是给一个通用默认。
生成的片段放到 .htaccess 还是 httpd.conf?
两者都支持,但多数虚拟主机只能改站点根目录的 .htaccess。把结果粘到该文件、并确保 Apache 允许覆盖(AllowOverride 开启)即可。本工具不关心你放在哪,只负责产出合规文本。
为什么有时跳转会循环?
通常是源和目标指向了同一资源,或 RewriteRule 没加 [L] 导致规则继续匹配。本工具生成的 RewriteRule 已带 [L](last),并在目标用不同路径避免自指;若你手写改动后出现循环,请检查目标是否又指回了源。
支持批量生成很多条重定向吗?
本工具一次生成一条,保证每条都经过人工确认的三要素。若你有几十条旧地址要迁移,建议逐条生成后自行汇总,或先用本工具验证单条格式,再批量拼接进 .htaccess。
生成结果会被上传吗?
不会。所有拼接只在你当前浏览器里完成,页面不发起任何网络请求,也不写 Cookie 或 localStorage。你在开发者工具的 Network 面板里点几次「生成片段」,面板始终是空的。