htaccess 转 nginx 工具

将 Apache .htaccess 规则一键转换为 nginx 配置,支持 RewriteRule、Redirect、ErrorDocument 等常见指令

本工具按行解析常见 .htaccess 指令并尝试转换为 nginx 等效配置。nginx 与 Apache 语义差异较大,部分规则需手动调整。不支持转换的行将以 # [未转换] 注释形式保留,请人工评估。
广告位

工具介绍与功能

从 Apache 迁移到 nginx 时,.htaccess 中的 RewriteRule、Redirect、ErrorDocument 等指令需要按 nginx 语法重写。本工具自动处理常见指令转换,显著降低迁移成本,避免手写正则出错。

  • 重写规则:RewriteRule → rewrite/return
  • 跳转处理:Redirect/RedirectMatch → return 301/302
  • 错误页面:ErrorDocument → error_page
  • 其他指令:DirectoryIndex、Options、Header、ExpiresByType 等

安全保障

  • 本地转换:所有解析与转换在浏览器内完成,配置不上传服务器
  • 谨慎使用:转换结果建议在测试环境验证后再部署到生产

常见问题

RewriteRule 转换后为什么有时用 rewrite 有时用 return?

当目标 URL 是完整 http(s):// 开头的外部地址时,nginx 用 return 跳转更直观;目标为内部路径时使用 rewrite。本工具按此约定自动选择,并尽量保留 [R=301,L] 等标志的语义。

为什么有些行被注释为"未转换"?

Apache 与 nginx 语义差异较大,如 SetEnvIf、php_value、Order/Deny/Allow 复杂组合等,无简单的等价转换。这些行会以 # [未转换] 原内容 形式保留,您需根据实际场景手动调整。

转换结果可以直接部署到 nginx 吗?

转换结果可放入 server 或 location 块中使用,但 nginx 配置需要全局上下文(如 server 块),建议先在测试环境用 nginx -t 验证语法,再用真实流量回归测试后再上线。