我的 nginx.conf 文件中有类似的内容。
location / {
if ($request_uri ~ "^(.*)/(.*)/(.*).*$" ) {
set $first $1;
set $second $2;
set $third $3;
}
proxy_pass http://amigo/newbasedir/$third;
}
这改变了http://myhost.com/first/second/trhee.html到http://mybackend/newbasedir/trhee.html
但在我的 access.log 配置中,我注册的是原始的 $request_uri,而不是 newbasedir。有没有办法更改 access.log 以保存结果请求而不是原始请求?
答案1
如果您重写请求,它将在访问日志中显示新的 URI:
rewrite "^/[^/]+/[^/]+(/[^/]+)" /newbasedir$1;
location /newbasedir/ {
proxy_pass http://amigo;
}