wildcard to rewritre multi domains to www

Marcus Clyne maccaday at gmail.com
Sun Sep 6 00:53:02 MSD 2009


Hi,

Cliff Wells wrote:
> Try this:
>
> server {
>     server_name ~(^.+\..+$);
>     set         $name $1;
>     rewrite     ^ http://www.$name$request_uri? permanent;
> }
>
>   
That will cause problems if the domain begins with www.  If you want to 
capture both www.domain.tld and domain.tld and rewrite to include the 
www., you could use

server {
    server_name   ~^(www\.)?(.+)$;
    set   $name   $2;
    rewrite   ^ http://www.$name$request_uri? permanent;
}

Marcus.
> Regards,
> Cliff
>
> On Sat, 2009-09-05 at 11:28 -0500, AMP Admin wrote:
>   
>> Thanks.  I'll do that.  I was just hoping that I wouldn't have to list all
>> domains. That works though. :)
>>
>> Regards, 
>>
>> -Team AMP 
>> http://www.ampprod.com 
>>
>> -----Original Message-----
>> From: owner-nginx at sysoev.ru [mailto:owner-nginx at sysoev.ru] On Behalf Of Igor
>> Sysoev
>> Sent: Saturday, September 05, 2009 9:21 AM
>> To: nginx at sysoev.ru
>> Subject: Re: wildcard to rewritre multi domains to www
>>
>> On Sat, Sep 05, 2009 at 08:57:57AM -0500, AMP Admin wrote:
>>
>>     
>>> Hi, I would like to rewrite several domains to from .example.com to
>>> www.example.com.  I think the best way is to use a wild card.  Too bad I
>>> suck at rewrite rules. Haha
>>>
>>> Can someone help me make the following work?
>>>
>>>         if ($host != 'www.*.com') {
>>>                 rewrite  ^/(.*)$  http://www.*.com/$1  permanent;
>>>         }
>>>       
>> server {
>>      server_name  ~^((?:domain1|domain2|domain3)\.com)$;
>>      set          $name  $1;
>>      rewrite      ^      http://www.$name$request_uri?  permanent;
>> }
>>
>>
>>     






More information about the nginx mailing list