эффективный редирект к основному имени домена

Igor Sysoev is at rambler-co.ru
Sat Jul 28 16:14:07 MSD 2007


On Sat, Jul 28, 2007 at 03:52:50PM +0400, Alexey Rymonin wrote:

> Hello Alexey,
> 
> Saturday, July 28, 2007, 3:42:31 PM, you wrote:
> 
> AR> Hello nginx-ru,
> 
> AR> Это из документации:
> AR> Первое имя становится основным именем сервера. По умолчанию
> AR> используется имя машины (hostname).
> AR> В именах серверов можно использовать "*" для замены первой или последней части имени:
> 
> AR> А есть ли какой либо способ эффективно отдавать перманент редирект в
> AR> случаи, если запрос пришел не по основному имени сервера... например
> AR>      server {
> AR>          server_name   example.com  *.example.com  www.example.*;
> AR>      }
> 
> AR>      пришел запрос на http://www.example.com/pupkin.htm?id=123
> AR>      получаем 301 редирект на http://example.com/pupkin.htm
>       пришел запрос на http://www.example.com/pupkin.htm?id=123
>       получаем 301 редирект на http://example.com/pupkin.htm?id=123
>       только так ясное дело :-)
> 
> AR> Не охото обходится регулярными выражениями, потому что очень толстые
> AR> получаются, поскольку например для домена хочется основные домены так
> AR> распределять например
> AR> server_name   www.example.com example.com
> AR> server_name   www.example.spb.ru example.spb.ru
> AR> server_name   pupkin.example.ru www.pupkin.example.ru

map $http_server $redirect {
      www.example.com        example.com;
      www.example.spb.ru     example.spb.ru;
      www.pupkin.example.ru  pupkin.example.ru;
}


server {
     server_name   www.example.com
                   www.example.spb.ru
                   www.pupkin.example.ru
                   ;

     rewrite   ^(.+)$   http://$redirect$1  permanent;
}


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list