試著讓 Nginx 轉換來自 example.com/$uri 的 url example.com/path/$uri

試著讓 Nginx 轉換來自 example.com/$uri 的 url example.com/path/$uri

當嘗試在沒有「路徑」(example.com/path)的情況下存取 example.com 時,我要求 Nginx 將路徑新增至 url,如果它已經存在,則忽略重寫。歡迎任何幫助。

我已嘗試返回

回傳 301 $scheme://example.com/path$request_uri;它只是重定向,直到達到 10 的限制

我也嘗試過重寫,但顯然我也沒有做到這一點。

拓撲是 [proxy] -> [web-server] 我嘗試在兩者上進行重定向,不確定是否應該在代理或 Web 伺服器上進行轉換

答案1

如果您想將請求代理到後端應用程序,您可以使用

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

重寫規則也是可能的,使用負前瞻正規表示式,但是效能會比第一個範例稍低:

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

相關內容