Re: Регулярное выражение в server_name и редирект

Вадим Бородин borodin.vadim на gmail.com
Ср Сен 21 11:01:31 UTC 2011


Спасибо за map - не знал.
А вот server_name_in_redirect пробовал - почему-то не помогает. На всякий
случай пробовал в контекстах http и server.

# nginx -V
nginx version: nginx/0.8.35
TLS SNI support enabled
configure arguments: --conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid
--lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug
--with-http_stub_status_module --with-http_flv_module --with-http_ssl_module
--with-http_dav_module


20 сентября 2011 г. 18:52 пользователь Igor Sysoev <igor на sysoev.ru> написал:

> On Tue, Sep 20, 2011 at 06:27:42PM +0400, Вадим Бородин wrote:
> > Здравствуйте.
> >
> > Есть такой конфиг:
> >
> > server {
> >     listen 80;
> >     server_name
> >
> ~^(www\.)?mysite\.ru(\.(?<lc>[^.]+)\.(?<cluster>[^.]+)\.mypartysite\.name)?$;
> >     if ($lc = "") {
> >         set $lc rel;
> >     }
> >     if ($cluster = "") {
> >         set $cluster prod;
> >     }
> >     root   /srv/$cluster/$lc/mysite/htdocs;
> >         index  index.php
> >     location ~ \.php$ {
> >         # отдаётся на fastcgi php
> >     }
> > }
> >
> > В /srv/prod/rel/mysite/htdocs есть директория static.
> >
> > Заходим на http://mysite.ru/static/ - получаем 403 (это правильно,
> > autoindex'а нет)
> > Заходим на http://mysite.ru/static  - (без слеша на конце) получаем
> редирект
> > на http://~
> >
> ^(www\.)?mysite\.ru(\.(?<lc>[^.]+)\.(?<cluster>[^.]+)\.mypartysite\.name)?$/
> > static/
> > Т.е. редирект на само регулярное выражение из server_name с дописанным в
> > начало http:// и дописанным в конец /static/.
> >
> > Подскажите, пожалуйста, что происходит.
>
> Вместо if'ов лучше поставить:
>
> http {
>
>    map  $lc_r    $lc  {
>         ""       rel;
>         default  $lcc;
>    }
>
>    map  $cluster_r    $cluster  {
>         ""      prod;
>         default  $cluster;
>    }
>
>    server {
>     server_name
>
>  ~^(www\.)?mysite\.ru(\.(?<LC_R>[^.]+)\.(?<CLUSTER_R>[^.]+)\.mypartysite\.name)?$;
>
> А для нормального редиректа
>   server_name_in_redirect off;
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru




-- 
С уважением,
Бородин Вадим
borodin.vadim на gmail.com
skype: borodin_v_v
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20110921/aad091df/attachment.html>


Подробная информация о списке рассылки nginx-ru