Vhost support

António P. P. Almeida appa at perusio.net
Sat Jan 29 11:39:06 MSK 2011


On 29 Jan 2011 07h58 WET, appa at perusio.net wrote:

> 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>[^.]+);

Make it:

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

Forgot to escape the "." in the named capturing groups.

--- appa




More information about the nginx mailing list