.htaccess 生成器
生成 Apache .htaccess 重定向、缓存和安全规则,并检查冲突
错误:0 · 警告:0 · 重定向:0
生成哪些内容
生成器为常见的重定向、性能和安全需求编写 Apache 2.4 的 .htaccess 文件:强制 HTTPS、统一规范主机、整理末尾斜杠和 index.html、自定义 301/302/307/308 重定向、gzip 压缩、Expires 缓存预设、目录列表与点文件保护、基础安全响应头、可选 HSTS 以及自定义错误页。每个部分都带有注释,顺序始终固定,便于对比差异。
冲突检查
每条重定向写入前都会检查:来源格式错误、目标协议不安全或不符合预期、重复规则、指向自身、A 到 B 再回到 A 的循环,以及多跳一次的重定向链。会造成循环或永远不会执行的规则不会写入文件,并列在“发现”中。规范主机和末尾斜杠都是单选,因此无法同时启用添加 www 和去掉 www 这类互相矛盾的规则。
重要的 Apache 细节
所有重写规则共用一个 IfModule mod_rewrite 区块,只有一个 RewriteEngine On。HTTPS 和主机变更在一次重定向内完成,末尾斜杠规则会跳过真实存在的文件和目录,斜杠和首页重定向只作用于 GET 和 HEAD 请求。访问控制使用 Require all denied,绝不使用过时的 Order 和 Deny 语法。依赖模块的区块都包在 IfModule 中,缺少模块时只会跳过该区块,而不会让网站出错。
部署之前
.htaccess 只在服务器的 AllowOverride 设置允许这些指令时生效,否则 Apache 会返回 500。请把文件放在文档根目录,因为自定义重定向的路径相对于它。在终止 TLS 的代理或 CDN 之后,HTTPS 规则看不到原始协议,可能陷入循环。只有在 HTTPS 全面可用后再开启 HSTS,并从较短的有效期开始。浏览器会把下载保存为 htaccess.txt,请在服务器上改名为 .htaccess。所有处理都在你的浏览器中完成,不会上传任何内容。
