ZH
我的工具

.htaccess 重定向生成器(301、HTTPS、www)

生成 Apache .htaccess 重定向:单个页面、旧→新地址批量列表、HTTP 到 HTTPS、有无 www、域名迁移、文件夹、结尾斜杠,以及去掉 .html/.php。

.htaccess 规则
规则数
1
模块
mod_rewrite

浏览器会缓存永久重定向。先用 302 测试,规则正确后再改成 301;可用 curl -I https://your-site/old-path 检查。

把规则放在网站根目录 .htaccess 文件的靠前位置。它们需要 mod_rewrite 或 mod_alias,以及该目录的 AllowOverride;如果是自己的服务器,也可以把同样的几行放进虚拟主机配置里。

我的工具 →
广告

在 Apache 主机上,重定向通常写在 .htaccess 文件里:移动页面、把所有访客送到 HTTPS、在 www 和裸域名之间二选一,或迁移整个网站。这个生成器为这些任务写出规则,也支持旧地址和新地址的批量列表、文件夹迁移、结尾斜杠,以及隐藏 .html 或 .php;正则表达式中的特殊字符会被转义,查询字符串也会被正确处理。

使用方法

  1. 选择重定向类型和状态码(永久移动用 301)。
  2. 填写旧路径和新地址、批量列表,或者域名。
  3. 把规则复制到网站根目录 .htaccess 文件的靠前位置。
  4. 在无痕窗口的浏览器或用 curl -I 测试,旧 URL 请至少保持重定向一年。

计算公式

mod_alias: Redirect code /old new (prefix match) or RedirectMatch code ^/old$ new (exact). mod_rewrite: RewriteCond tests (HTTPS, HTTP_HOST, QUERY_STRING), then RewriteRule ^pattern$ target [R=code,L].

在 .htaccess 中,RewriteRule 的模式匹配时不含开头的斜杠。Redirect 和 RedirectMatch 看不到查询字符串,所以带 "?" 的旧地址会加上针对 %{QUERY_STRING} 的 RewriteCond;QSD(Apache 2.4)可防止附加旧的查询参数。

示例

HTTP → HTTPS 会得到 RewriteEngine On、RewriteCond %{HTTPS} !=on 和 RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]。把 /old-page.html 移到 https://example.com/new-page/ 会得到 RedirectMatch 301 ^/old-page\.html$ https://example.com/new-page/——点号被转义,所以只匹配真正的点。

常见问题

用 301 还是 302?

永久移动用 301(或 308),搜索引擎会把旧页面的信号转移到新页面;临时变更用 302 或 307。浏览器会缓存 301,所以请先用 302 测试。

加了 HTTPS 规则之后网站为什么会循环跳转?

通常是代理或 CDN 负责 HTTPS,并通过 HTTP 与 Apache 通信,所以 %{HTTPS} 永远是关闭的。请勾选代理选项改为检查 X-Forwarded-Proto,或把 CDN 设为完全 SSL。

.htaccess 在 nginx 上有用吗?

没有。nginx 会忽略 .htaccess 文件;请使用 nginx 配置生成器,并在 server 块中使用 return 301 规则。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). .htaccess 重定向生成器(301、HTTPS、www). https://kakao.mobile/zh/tools/htaccess-redirect-generator/

MLA

“.htaccess 重定向生成器(301、HTTPS、www).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/htaccess-redirect-generator/.

广告