中间件速查手册
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。

它出现在这些中间件里

相关概念