I have an nginx server processing PHP requests, but it’s configured to listen on a non-standard port (port 12345 or something). I can’t change the listen port because corporate IT says, “No.”
There is a proxy in the data center that forwards requests from http://www.domain.com:80 to the nginx box on port 12345.
I have some static 301 redirects that I need to put in place, but I’m getting unexpected behavior.
Sample redirects in site.conf “server { }” block:
rewrite ^/foo$ /bar/foo/ permanent;
When I attempt to go to http://www.domain.com/foo, the redirect happens, but it tries to forward the browser to http://www.domain.com:12345/bar/foo/
My question is, how can I get nginx to redirect the user to the correct port (www.domain.com/bar/foo/)?
Maybe a better question is, what is the correct way to do what I’m asking? There are 50+ redirects that need to go in, and I’d rather not create a “location” section for each of those redirects.
You can provide a more explicit rewrite. Try the following:
I have assumed that you meant to use
^/foo/instead of^/foo$, since^/foo$is a very specific case. Just revise as needed.