12

How can I map a URI of the form staging.example.com/siteA to a virtual server located at /var/www/siteA?

The main restriction is that I do not want to create a subdomain for siteA. All examples of nginx.conf I've seen so far rely on having a subdomain to do the mapping.

Thanks

Bernard
  • 16,149
  • 12
  • 63
  • 66

1 Answers1

24

You may use the root directive within a location block, like this:

server {
    server_name staging.example.com;
    root /some/other/location;
    location /siteA/ {
        root /var/www/;
    }
}

Then http://staging.example.com/foo.txt points to /some/other/location/foo.txt, while http://staging.example.com/siteA/foo.txt points to /var/www/siteA/foo.txt.

Note that the siteA directory is still expected to exist on the filesystem. If you want http://staging.example.com/siteA/foo.txt to point to /var/www/foo.txt, you must use the alias directive:

location /siteA/ {
    alias /var/www;
}
sjy
  • 2,702
  • 1
  • 21
  • 22