这也许是一个愚蠢的问题,但我似乎找不到很好的文档或例子......
当您使用位置块来过滤传入的请求时,您是从匹配的位置还是从请求的开始进行重写?
一个例子:
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 匹配(即您的第一个示例)。