Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Сложный реврайт
- To: nginx-ru@xxxxxxxxx
- Subject: Re: Сложный реврайт
- From: Валентин Бартенев <ne@xxxxxxxx>
- Date: Fri, 25 Nov 2011 23:16:37 +0400
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=vbart.ru; s=mail; h=Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:In-Reply-To:References:Date:Subject:To:From; bh=ru+x//fdQ3agrL9WgY8WIwOon6xs8OBFrd2b25FQuGs=; b=Yi/Z8499KfyhsaTM3N2mrtLFalCEF0MgjA3XB9d0ngKpq1JGtCZdYQ+eFEewtHzBSiYIQzUZzZoQnmf1y3sVTqiN8DN1CM/Z5djqnocVZS/XxsuseuhH34+ggTFnEJgXkqEIXo5EI/fNIUkuIoUVA691486HldIJd1TVugVWCjqduzPNDBsWAlG2UI4REtsj/6/bhFRLenBzFoiUjx56iLygIArt2hLj7cqD1f9dO/iJDF7t4KcoZ2S7J+0PFYcbmmz6+J4mp52V41Vtsz8vohzDEXzkRshLr19/9QVQOgOG6ygATMoE5Cj3qaR7+WJaEiu9eQiZZPhYsB4iyObbbg==;
- In-reply-to: <CAFbRBHHF2hYDXcVHmoXNrp+VxcJLaVyoyGW0gctD5GjCrpNXHA@xxxxxxxxxxxxxx>
- References: <CAFbRBHHF2hYDXcVHmoXNrp+VxcJLaVyoyGW0gctD5GjCrpNXHA@xxxxxxxxxxxxxx>
On Friday 25 November 2011 19:38:37 Юрий Гончаров wrote:
> Приветствую всех. Ковырял пол дня и так не смог побороть. Помогите
> разрешить задачу.
>
> Есть http://domain.com
> Если файл (или папка) не существует для
> http://domain.com/anyfolder/somethingelseunknown то нужно реврайт на
> http://domain.com/anyfolder/front.php
> (если два уровня вложенности, все равно брать первую папку, т.е. для
> http://domain.com/anyfolder/anyfolderinside/somethingelseunknown
> нужен реврайт на http://domain.com/anyfolder/front.php)
> anyfolder - может быть любой.
> В тоже время если вызывать http://domain.com/somethingelseunknown или
> если при попытке реврайта на http://domain.com/anyfolder/front.php -
> http://domain.com/anyfolder/front.php - не будет существовать (или
> файла front.php нет или вообще нет папки anyfolder) - то тогда
> реврайтить на http://domain.com/public/front.php
>
> Попробую обобщить
> 1. Если файл не существует И есть хотя бы одна папка в URI - то
> попробовать http://domain.com/anyfolder/front.php
> 2. (Если файл не существует И перейти по 1. не удалось) ИЛИ (в URI нет
> папок (типа http://domain.com/wrongfile)) то на
> http://domain.com/public/front.php
>
> Очень жду. Спасибо
>
Написали очень сложно.
Предположим, что все три кейса вы хотите обрабатывать в пределах одного
локэйшена:
location ~ ^(/[^/]+)/.+$ {
try_files $uri $1/front.php /public/front.php =404;
}
Если хотите в разных, то:
location ^~ /public/front.php {
}
location ~ ^/[^/]+/front.php$ {
try_files $uri /public/front.php;
}
location ~ ^(/[^/]+)/ {
try_files $uri $1/front.php;
}
--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|