Vhost support

António P. P. Almeida appa at perusio.net
Sat Jan 29 10:58:25 MSK 2011


On 29 Jan 2011 07h35 WET, markc at renta.net wrote:

> On 29/01/11, Igor Sysoev wrote:
>>> This is pretty good but I want to reverse the domain.org $host
>>> variable and provide, say, a $rhost variable of "org/domain".
>> [...]
>>
>> http://nginx.org/en/docs/http/server_names.html#regex_names
>
> Thanks for the reply, but how do I take into account...
>
> domain.com
> www.domain.com
> www.username.domain.com
>
> so, ie; the first one becomes com/domain and the last one becomes
> com/domain/username/www ?
>
> I have tried this but couldn't get it to work...
>
> server {
> server_name  ~^(?<p1>\.)?(?<p2>\.)?(?<p3>\.)?(?<p4>\.)?(?<p5>\.);
> #server_name
> #~^(?P<p1>\.)?(?P<p2>\.)?(?P<p3>\.)?(?P<p4>\.)?(?P<p5>\.);
> location / {
> root /var/www/$p5/$p4/$p3/$p2/$p1;
> }
> }

Try with:

server_name  ~^(?<p1>[^.]*)[\.]*(?<p2>[^.]*)[\.]*(?<p3>[^.]*)[\.]*(?<p4>[^.]+)\.(?<p5>[^.]+);

I'm uncertain about the way the root directive value gets assigned
when there are null valued variables. Never tried anything of that sort.

--- appa




More information about the nginx mailing list