allins
January 1, 2009, 12:07am
1
ok, well better put on root is recognized, a second isnt.
have this setup ( lots of snipping here… )
root /some/path;
…
location /
{
if ( -f /tmp/.maintenance )
{
set $site_maintenance 1;
}
if ( $site_maintenance )
{
root /maintenance/path;
rewrite (.*) /maintenance/index.html;
}
}
problem is… the rewrite works just fine but its trying to serve
/some/path/maintenance/index.html
instead of
/maintenance/path/maintenance/index.html
any idea why?
allins
January 1, 2009, 3:13am
2
Try using the $document_root variable
rewrite (.*) $document_root/maintenance/index.html;
On Wed, Dec 31, 2008 at 10:56 PM, Sean A.
allins
January 1, 2009, 4:04pm
4
I figured out why the below didnt work for me.
I left out one key point about root /some/path;
We are actually doing:
set $root $base/public;
root $root;
because conf files are shared by multiple sites. this way each site
set $base
and it gets reused in different places… to make the below work, with
that
i need to change
if ( $site_maintenance )
{
root /maintenance/path;
rewrite (.*) /maintenance/index.html;
}
to
if ( $site_maintenance )
{
set $root /maintenance/path;
rewrite (.*) /maintenance/index.html
}
which is TOTALLY not how I expected variables to work.
is this documented somewhere?
that if you set root with a variable, to later change root you have
to change the value of the variable and that using root will have no
effect?