我想重定向所有的網址不要考慮到伺服器使用. ,/abcd/
以 ->前綴開頭。/abcd/
proxy_pass
server {
location / {
proxy_pass http://upstream-server/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
if ($request_uri = "/"){
return 301 /abcd/;
}
}
}
我正在考慮使用正則表達式和否定,如下所示:
location ~ ^/(?!abcd.*).*$ {
return 301 /abcd/;
}
還有其他/更好的解決方案嗎?
答案1
我認為這比你需要的更複雜。 nginx評估從最具體的塊到最不具體的塊。
在此範例中,任何符合 /abcd 的內容都會轉到 proxy_pass 區塊,其他所有內容都會轉到重定向的 / 區塊。
我還沒有測試過這個,試一試,如果不起作用我可以再考慮一下。
location /abcd {
proxy_pass (etc);
}
location / {
return 301 /abcd/;
}