>> It works if I specify the full path for the alias. What is the >> difference between alias and root? I have root specified outside of >> the server block and I thought I could use alias to avoid specifying >> the full path again. > > http://nginx.org/en/docs/http/ngx_http_core_module.html#alias > http://nginx.org/en/docs/http/ngx_http_core_module.html#root > > The docs says that the requested filepath is constructed by concatenating > root + URI > That's for root. > > The docs also say that alias replaces the content directory (so it must be > absolutely defined through alias). > By default, the last part of the URI (after the last slash, so the file > name) is searched into the directory specified by alias. > alias doesn't construct itself based on root, it's totally independent, so > by using that, you'll need to specify the directory absolutely, which is > precisely what you wish to avoid.
I see. It seems like root and alias function identically within "location /". >> I tried both of the following with the same result: >> >> location / { >> alias webalizer/; >> } >> >> location ~ ^/$ { >> alias webalizer/$1; >> } > > > For > > what you wish to do, you might try the following: > > set $rootDir /var/www/localhost/htdocs > root $rootDir/; > location / { > alias $rootDir/webalizer/; > } > > alias is meant for exceptional overload of root in a location block, so I > guess its use here is a good idea. I'm not sure what you mean by that last sentence. When should alias be used instead of root inside of "location /"? > However, there seems to be no environmental propagation of some $root > variable (which may be wanted by developers to avoid confusion and unwanted > concatenation of values in the variables tree). > $document_root and $realpath_root must be computed last, based on the value > of the 'root' directive (or its 'alias' overload), so they can't be used > indeed. > > I'd be glad to know the real reasons of the developers behind the absence of > environmental propagation of some $root variable. Me too. - Grant _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx