4 messages in ru.sysoev.nginxVariable weirdness ( was root not rec...
FromSent OnAttachments
Sean AllenDec 31, 2008 2:56 pm 
Mathew DaviesDec 31, 2008 6:02 pm 
Sean AllenJan 1, 2009 6:49 am 
Sean AllenJan 1, 2009 6:57 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Variable weirdness ( was root not recognized )Actions...
From:Sean Allen (se@monkeysnatchbanana.com)
Date:Jan 1, 2009 6:57:25 am
List:ru.sysoev.nginx

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?

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?