Web 服务器地址重写
rewrite 是什么?
按正则改写 URL 或做跳转,处理旧链接和伪静态
类比:把旧门牌号换成新门牌号,来访者自动被引导
它做什么
rewrite 用正则匹配请求路径,改写后重新匹配 location(内部重写),或用 permanent/redirect 返回 301/302(外部跳转)。
常见用途
老系统迁移、SEO 友好 URL、多域名统一,都靠它。
- rewrite ^/old/(.*)$ /new/$1 permanent;
- 伪静态:rewrite ^/article/(\d+)\.html$ /article?id=$1 last;
- 强制 HTTPS:return 301 https://$host$request_uri;
坑
rewrite 的 last 和 break 区别:last 会重新匹配 location,break 直接在当前 location 继续。写错容易死循环(Nginx 会报 rewrite or internal redirection cycle)。调试用 error_log 开 rewrite_log on。