Re: Злощасный try_files и alias
Maxim Dounin
mdounin на mdounin.ru
Ср Фев 24 13:12:54 UTC 2016
Hello!
On Wed, Feb 24, 2016 at 01:45:27AM +0200, Alex Domoradov wrote:
> https://trac.nginx.org/nginx/ticket/97
>
> подскажите, до сих пор нет решения этой проблемы?
Проблемы из этого тикета, не являющиеся дискуссионными, в
современных версиях nginx'а решены. По опыту - если вы пришли к
выводу, что ваши проблемы из-за этого тикета, то скорее всего вы
просто перемудрили в конфиге.
> Есть
>
> server {
> root /vhosts/api.example.net/public_html;
>
> location ~ /api/2.0 {
> alias /vhosts/api.example.net/api/v2.0/public_html;
> try_files $uri $uri/ /index.php?$query_string;
> }
> }
>
> при таком конфиге и обращении к /api/1.0 файлы ищутся в /vhosts/
> api.example.net/public_html, вместо /vhosts/
> api.example.net/api/v2.0/public_html
При обращении к /api/1.0 они и должны искаться от root'а сервера,
т.к. location'а для /api/1.0 у вас не описано.
При обращении к /api/2.0, вероятно, происходнить будет не то, что
вы хотели, т.к. в location'е, заданном с помощью регулярного
выражения, alias определяет полный путь к файлу, а try_files к
этому пути добавляет фрагменты. Вам, вероятно, надо убрать "~" из
location'а, сделав его обычным префиксным, и всё заработает так,
как хотелось.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru