나는 모든 URL을 리디렉션하고 싶습니다.하지 마라서버 가 /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
내 생각에는 그것이 필요한 것보다 더 복잡하다고 생각합니다. 엔진스평가하다가장 구체적인 블록부터 가장 덜 구체적인 블록까지.
이 예에서 /abcd와 일치하는 모든 항목은 Proxy_pass 블록으로 이동하고, 다른 모든 항목은 리디렉션되는 / 블록으로 이동합니다.
나는 이것을 테스트하지 않았습니다. 시도해 보고 작동하지 않으면 좀 더 생각해 볼 수 있습니다.
location /abcd {
proxy_pass (etc);
}
location / {
return 301 /abcd/;
}