Hello,
is that possible to tell nginx to stay inside the same location after
rewrite rule is done?
i.e. I have:
location /njs/ {
proxy_pass http://localhost:5501;
…
}
now, if i need to cut off /njs/ part, i added the following:
location /njs/ {
rewrite /njs(.*) $1;
proxy_pass http://localhost:5501;
…
}
but, that doesn’t work, because my uri has changed and nginx goes to the
default location, which I don’t need.
what could I do in this situation?
–
With best regards,
Gregory E.
On Thu, Jul 30, 2015 at 11:57 PM, Gregory E. [email protected]
wrote:
}
what could I do in this situation?
if only you have read the documentation…
http://nginx.org/r/proxy_pass
…
When the URI is changed inside a proxied location using the rewrite
directive, and this same configuration will be used to process a
request (break):
location /name/ {
rewrite /name/([^/]+) /users?name=$1 break;
proxy_pass http://127.0.0.1;
}
In this case, the URI specified in the directive is ignored and the
full changed request URI is passed to the server.
…
On 07/30/2015 06:02 PM, Edho A. wrote:
…
default location, which I don’t need.
request (break):
location /name/ {
rewrite /name/([^/]+) /users?name=$1 break;
proxy_pass http://127.0.0.1;
}
In this case, the URI specified in the directive is ignored and the
full changed request URI is passed to the server.
…
thank you very very much.
I’ve read the docs, but skipped the break completely, somehow.
On 30 Jul 2015, at 17:57, Gregory E. [email protected] wrote:
now, if i need to cut off /njs/ part, i added the following:
location /njs/ {
rewrite /njs(.*) $1;
proxy_pass http://localhost:5501;
…
}
but, that doesn’t work, because my uri has changed and nginx goes to the default
location, which I don’t need.
what could I do in this situation?
Just add slash in upstream:
location /njs/ {
proxy_pass http://localhost:5501/;
…
}
–
Igor S.