工具介绍
.htaccess 转 Nginx 工具是一款免费的在线规则转换工具。把 Apache 的 .htaccess 规则粘贴进来,或直接点击「上传文件」选择本地的 .htaccess 文件,即可实时转换为对应的 Nginx 配置片段,覆盖 RewriteRule 伪静态、301/302 跳转、ErrorDocument 自定义错误页、DirectoryIndex 默认首页、Header 响应头、deny/allow 访问控制等常用指令。
工具会自动处理两种引擎的主要差异:路径锚点补全、[L]/[R=301]/[NC]/[QSA] 等标志映射、Apache 变量到 Nginx 内置变量的替换;对 WordPress、ThinkPHP 等常见程序的前端控制器规则,会直接转换为 Nginx 官方推荐的 try_files 写法。内置 WordPress 伪静态、ThinkPHP 伪静态、301 跳转集合三个示例,点一下即可载入体验。无法自动转换的指令以注释保留并逐条提示,方便人工补齐。全程浏览器本地转换,规则与文件均不上传服务器。
功能亮点
- 实时转换:输入即自动转换(防抖),支持 Ctrl+Enter 快捷键
- 文件上传:直接选择本地 .htaccess 文件读取转换,文件不离开浏览器
- 标志映射:[L]/[R=301]/[NC]/[QSA]/[F] 自动映射为 Nginx 等价写法
- 锚点补全:自动补全 rewrite 匹配路径的斜杠锚点,适配 URI 差异
- 变量替换:%{HTTP_HOST} 等变量自动映射为 $host 等 Nginx 内置变量
- try_files 识别:前端控制器规则一键转换为官方推荐写法
- 全指令覆盖:跳转、错误页、默认首页、响应头、访问控制均支持
- 透明可信:无法转换的指令以注释保留并逐条提示,绝不静默丢弃
- 本地运行:转换在浏览器完成,规则内容不上传服务器
使用方法
- 粘贴规则:把 .htaccess 内容粘贴到上方输入框,点击「上传文件」直接选择本地 .htaccess 文件,或点击示例(WordPress / ThinkPHP / 301 跳转)载入
- 查看结果:实时得到 Nginx 配置片段,注意查看下方的转换提示
- 人工核对:按提示核对无法自动转换的部分,按需手工补齐
- 部署生效:复制结果放入 server 块,nginx -t 校验后 reload
适合人群
- 站长:从 Apache 主机迁移到 Nginx 环境的网站管理员
- 运维工程师:批量迁移伪静态与跳转规则的技术人员
- 建站开发者:不熟悉两种引擎差异、需要快速对照的开发人员
- SEO从业者:迁移站点后需要保留原有跳转与伪静态的优化人员
- 学生与新手:通过对照示例学习两种引擎配置差异的学习者
常见问题解答(FAQ)
什么是 .htaccess 和 Nginx 伪静态规则?
.htaccess 是 Apache 的分布式配置文件,常用于 URL 重写(伪静态)、跳转和访问控制;Nginx 不支持 .htaccess,需用 rewrite、location、try_files 等指令实现,本工具就是把前者转换为后者。
转换结果可以直接使用吗?
可以作为起点但不建议直接照抄。两者运行模型有差异,复杂条件判断、代理等指令无法一一对应,需人工核对、执行 nginx -t 校验后再 reload 生效。
为什么 RewriteCond 没有完整转换?
RewriteCond 是 Apache 前置条件判断,Nginx 无直接等价写法(官方也不推荐在 if 中做复杂判断);工具对常见组合给出建议写法,其余以注释保留并提示人工核对。
WordPress 等常见 CMS 的伪静态能直接转换吗?
可以。WordPress、ThinkPHP 等的前端控制器规则(!-f/!-d 条件加 index.php 目标)会被自动识别并转换为 location / { try_files $uri $uri/ /index.php$is_args$args; }(Nginx 官方推荐写法)。
转换结果放在 Nginx 配置的哪个位置?
一般放在对应站点的 server { } 块内;rewrite、location、error_page 等指令均属 server 上下文;宝塔等面板环境可粘贴到站点伪静态配置框中。
修改 Nginx 配置后如何生效?
先 nginx -t 检查语法,确认后 nginx -s reload(或 systemctl reload nginx)平滑重载;面板环境保存伪静态配置时自动完成校验与重载。
转换后访问仍然 404 怎么办?
常见原因:配置放错 server 块或未 reload;存在优先级更高的 location;rewrite 目标路径不对。可用 nginx -T 输出全部生效配置排查,并查看 error.log。
[NC]、[QSA]、[L] 这些标志去哪了?
[L] → last;[R=301] → permanent;[R] 或 [R=302] → redirect;[NC] → 正则前缀 (?i);[QSA] → 无需转换(Nginx 的 rewrite 会自动附加查询串)。
工具支持转换哪些指令?
支持 RewriteRule/RewriteCond、Redirect/RedirectMatch、ErrorDocument、DirectoryIndex、Header set/append、deny/allow、Require all、Options -Indexes、AddDefaultCharset 等常用指令;IfModule 包裹标签自动剥离,其余指令以注释保留并提示。
粘贴的规则会被上传到服务器吗?
不会。转换全部在浏览器本地完成,粘贴内容与转换结果都不发送到服务器。
Apache 和 Nginx 的正则语法兼容吗?
两者都基于 PCRE,常规写法兼容;主要差异在匹配对象——Apache 在 .htaccess 中匹配去掉 RewriteBase 后的路径,Nginx 的 rewrite 匹配以 / 开头的 URI,工具会自动补全锚点后的斜杠。
更新日期:2026-11-02
