Store part of subdomain in a variable to use as root

martinc6 nginx-forum at nginx.us
Thu Aug 6 23:09:02 MSD 2009


Igor Sysoev Wrote:
-------------------------------------------------------
> On Thu, Aug 06, 2009 at 02:24:53AM -0400, martinc6
> wrote:
> 
> > I need to store part of a subdomain in a
> variable in order to use it as my root and I can't
> seem to get it to work.
> > 
> > The URLs would be formed like:
> martin_branch.dev.testsite.com
> > 
> > And I need root to be
> /home/martin/martin_branch.dev.testsite.com
> > 
> > The underscore ("_") and stuff afterwards is
> optional. I'll also need martin.dev.testsite.com
> to have its root as
> /home/martin/martin.dev.testsite.com.
> > 
> > Note that the name ("martin") and home folder
> will vary.
> > 
> > This is what I've got so far:
> > 
> > server {
> >         listen   80;
> >         server_name
> ~^(.+)_*\.dev\.testsite\.com$;
> >         set $myroot $1;
> >         root /home/$myroot/$host;
> >  }
> > 
> > Thanks in advance!
> 
> What is in error_log ?
> BTW, "_" is invalid character in domain name.
> 
> Also for this simple configuraiton you may omit
> "set" since $1 is never
> overwritten:
> 
>  server {
>          listen   80;
>          server_name
> ~^(.+)_*\.dev\.testsite\.com$;
>          root /home/$1/$host;
>  }
> 
> 
> -- 
> Igor Sysoev
> http://sysoev.ru/en/

The reason for the set is that we have other if statements and rewrites but they shouldn't be conflicting because they're the same as on other subdomains we use. I commented it all out just in case to test this.

In there error logs I get /home//martin.dev.testsite.com which means that $myhost is empty so the regex isn't returning anything.

We're changing our format to branch.martin.dev.testsite.com to be more valid. I'm reworking the regex like so:
^\.*(.+)\.dev\.testsite\.com.*$

But it's not done yet clearly. In my regex tester that returns the name I want but nginx doesn't seem to do it.

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,4750,4757#msg-4757






More information about the nginx mailing list