I have the following Nginx config:

server {
    listen 80;

    location /test {
        rewrite /test(.*) /$1 break;
        proxy_pass "http://www.example.com/";

This works well for the home page and when entering 'http://localhost/test' I get the content of http://www.example.com/ and the URL remains 'http://localhost/test'.

Cool, but when I hit a link in the website, say /more_examples I want the link to be rewritten as such: http://localhost/test/more_examples. In practice, I get the following: http://localhost/more_examples, which obviously will not work. Is this even possible?

Any help would be greatly appreciated.


I've tested your code and for me this works like you describe it:

location /test {
  rewrite /test(.*) $1 break;
  proxy_pass http://www.basicwebsiteexample.com;

I call http://localhost/test and for sub pages like this http://localhost/test/media.

I don't get any redirect or URL rewriting in my browser.

If you still get an URL redirect in your browser there must be a redirect in the website you're proxying or in your nginx config.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.