也许是一个愚蠢的问题,但我似乎无法find好的文档或例子…
当你使用位置块来过滤传入的请求时,你是从匹配的位置还是从请求的开始进行重写?
一个例子:
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? }
从请求开始。 这里有文档。
location /download/ { rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 break; rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra break; return 403; }
文档意味着完整的URL是匹配的(即你的第一个例子)。