Welcome! Log In Create A New Profile

Advanced

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

September 20, 2011 10:54AM
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
Subject Author Posted

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

Вадим Бородин September 20, 2011 10:36AM

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

Igor Sysoev September 20, 2011 10:54AM

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

Вадим Бородин September 21, 2011 07:04AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 298
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready