NGINX 位置块内的重写语法

NGINX 位置块内的重写语法

这也许是一个愚蠢的问题,但我似乎找不到很好的文档或例子......

当您使用位置块来过滤传入的请求时,您是从匹配的位置还是从请求的开始进行重写?

一个例子:

location ^~ /category/ {
    rewrite ^/category/paid-search-news/?$ /tag/paid-search permanent; # this,
    rewrite ^paid-search-news/?$ /tag/paid-search permanent; # this,
    rewrite paid-search-news/?$ /tag/paid-search permanent; # or this?
}

答案1

从请求开始。有相关文档这里

location /download/ {
  rewrite  ^(/download/.*)/media/(.*)\..*$  $1/mp3/$2.mp3  break;
  rewrite  ^(/download/.*)/audio/(.*)\..*$  $1/mp3/$2.ra   break;
  return   403;
}

答案2

文档意味着完整的 URL 匹配(即您的第一个示例)。

相关内容