Web 服务器目录级配置
.htaccess 是什么?
放在目录里的配置文件,不改主配置就能覆盖规则
类比:每个房间门口贴自己的规矩
它能做什么
在目录里放一个 .htaccess,就能为该目录及其子目录定义重写规则、访问控制、错误页、缓存头。共享主机没有主配置权限时,这是唯一的自定义手段。
代价
灵活是有成本的,而且成本不低。
- 每个请求都要读取并解析 .htaccess,目录越深越慢
- 规则分散,排查问题要一层层找
- AllowOverride All 有安全风险,可能被上传恶意文件利用
- 生产环境建议把规则合并进主配置,关掉 AllowOverride
迁移到 Nginx
Nginx 没有 .htaccess,重写规则要写进 server 块的 location 里。迁移时逐条翻译 RewriteRule,注意 Nginx 的 rewrite 语法和 Apache 不同。