私は Django アプリケーションを持っていますが、最近ベータ版を起動する必要があります。Nginx の助けを借りて、現在実行中のアプリケーションを変更せずに、"/beta" で始まるすべてのリクエストをベータ アプリにリダイレクトしたいと考えています。ここに私のconfがあります
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 360;
proxy_pass http://localhost:8000/;
}
location /beta/ {
rewrite ^/beta/(.*)$ /$1 break;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 360;
proxy_pass http://localhost:8001/;
}
これは機能しますが、アプリが 301 応答を返したとき、ほとんどの場合、ユーザーが何らかのリソースにアクセスするためにログインする必要があるときに、URL が古いものになるという問題があります。
たとえば、/events
ログインが必要な場合。
http://example.com/beta/events -> http://example.com/login?next=/events/
アプリケーションコードを変更せずにこれを修正するにはどうすればよいですか? (Nginxソリューション?)