尝试让 Nginx 转换 URL,例如从 example.com/$uri example.com/path/$uri

尝试让 Nginx 转换 URL,例如从 example.com/$uri example.com/path/$uri

当尝试访问没有“路径”的 example.com (example.com/path) 时,我需要 Nginx 将路径添加到 URL,如果路径已经存在,则忽略重写。欢迎任何帮助。

我曾尝试返回

返回 301 $scheme://example.com/path$request_uri; 它会一直重定向,直到达到 10 的限制

我也尝试过重写但显然也没有写对。

拓扑结构是 [代理] -> [网络服务器] 我尝试在两者上进行重定向,不确定是否应该在代理或网络服务器上进行转换

答案1

如果你想将请求代理到后端应用程序,你可以使用

location / {
    proxy_pass http://upstream/path/;
}
location /path/ {
    proxy_pass http://upstream;
}

重写规则也是可能的,使用负面前瞻正则表达式,但性能会比第一个例子略低:

rewrite ^((?!/path/).*) /path$1 ...

相关内容