首页 > 解决方案 > nginx rewrite中括号的含义

问题描述

我刚开始使用 nginx,有一条我不清楚的重写行:

server {
    server_name server.com;

    location /rt/v1 {
       rewrite ^/rt/v1/(.*) /$1 break;
       proxy_pass http://192.168.8.8:15555;
    }
}

假设我们输入http://server.com/rt/v1/index.html,结果是http://192.168.8.8:15555/index.html吗?() 中的 .* 有什么用?

标签: nginx

解决方案


这是一个正则表达式捕获组。

当您查看此命令时:

rewrite ^/rt/v1/(.*) /$1 break;

这意味着具有该模式的 URL/rt/v1/whatever将被重写为/whatever

  • 捕获后面的(.*)任何字符序列/rt/v1/
  • 引用第$1一个捕获的组

推荐阅读