how to rewrite or redirect a subdomain?

Denis F. Latypoff denis at gostats.ru
Wed Aug 8 19:51:24 MSD 2007


Hello Steve,

Wednesday, August 8, 2007, 10:25:36 PM, you wrote:

> That's really awesome, Thanks.

> We have thousands of xxx subdomains, here's our configure:

> server {
-         server_name  _  *.yyy.example.com;
+         server_name  xxx.yyy.example.com *.yyy.example.com;

          # yyy.sample.com matches "_"

>         if ($http_host ~ "^(.+?)\.yyy\.example\.com") {
>             set  $host  $1;
>         }

>         rewrite  ^   http://yyy.example.com/$host;
> }

> The "^(.+?)\." calls a dead loop, because it meet xxx.yyy.example.com,
> and redirect xxx.yyy.example.com to yyy.example.com/xxx, then redirect
> yyy.example.com/xxx to
> yyy.example.com/yyy, then to yyy.example.com/yyy... it seems a mistake.

> Does server_name  "*.yyy.example.com" match "yyy.example.com"?

> On 8/8/07, Igor Sysoev <is at rambler-co.ru> wrote:
>> On Wed, Aug 08, 2007 at 10:16:44PM +0800, Steve Chu wrote:
>>
>> > I digged the nginx rewrite module, found that it is hard to
>> > rewrite/redirect a subdomain, here's my situation:
>> > I wanna rewrite/redirect "http://xxx.yyy.example.com" to
>> > "http://yyy.example.com/xxx".
>> > I found there's a Variables $host, but how to split it to get "xxx",
>> > then use rewrite module?
>> > any idea?
>>
>>      server {
>>          server_name  yyy.example.com;
>>          ...
>>      }
>>
>>      server {
>>          server_name  xxx.yyy.example.com  *.www.example.com;
>>
>>          if ($http_host ~ "^(.+?)\.") {
>>              set  $host  $1;
>>          }
>>
>>          rewrite  ^   http://yyy.example.com/$host;
>>      }
>>
>>
>> --
>> Igor Sysoev
>> http://sysoev.ru/en/
>>
>>





-- 
Best regards,
 Denis                            mailto:denis at gostats.ru






More information about the nginx mailing list