1. Nginx Rewrite 基础概念解析
Rewrite 是 Nginx 服务器中一个极其强大的功能模块,它允许我们在请求处理过程中动态修改 URI。这个功能在 URL 规范化、网站迁移、路由重定向等场景中发挥着关键作用。理解 Rewrite 的工作原理,是掌握 Nginx 高级配置的重要一步。
在实际应用中,Rewrite 主要解决三类问题:
- URL 美化与规范化:将复杂的动态 URL 转换为简洁的静态形式
- 网站重构与迁移:保持旧链接可用性同时切换到新系统
- 条件路由:根据请求特征动态调整处理路径
重要提示:Rewrite 规则处理发生在 Nginx 的 rewrite 阶段,早于 location 匹配,这个处理顺序对规则设计有重要影响。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Rewrite 指令详解与实战配置
2.1 核心指令语法解析
Nginx 的 rewrite 指令基本语法为:
nginx复制rewrite regex replacement [flag];
各参数含义如下:
- regex:用于匹配 URI 的正则表达式
- replacement:替换后的目标 URI
- flag:控制重写行为的关键标志
最常用的 flag 有:
- last:停止处理当前 rewrite 规则集,用新 URI 重新开始匹配
- break:停止处理当前 rewrite 规则集,但不再重新匹配
- redirect:返回 302 临时重定向
- permanent:返回 301 永久重定向
2.2 典型配置场景示例
场景一:统一域名规范化
nginx复制server {
listen 80;
server_name example.com www.example.com;
if ($host != 'example.com') {
rewrite ^/(.*)$ https://example.com/$1 permanent;
}
}
场景二:旧URL兼容处理
nginx复制rewrite ^/oldpath/(.*)$ /newpath/$1 last;
场景三:动态URL静态化
nginx复制r
