Пару вопросов по location
diem
diem at pochta.ru
Mon Nov 9 22:28:23 MSK 2009
Борис Долгов пишет:
> Добрый день!
>
> 9 ноября 2009 г. 18:46 пользователь diem <diem at pochta.ru> написал:
>
>> Версия nginx - 0.7.63.
>> 1) Очень было бы неплохо иметь возможность применять alias в именованных
>> локэйшенах.
>>
> А как alias должен определять, какая часть URI - название папки, а
> какая - уже имя запрашиваемого файла? В named location это не
> указывается, и, получается, единственный логичный способ действия -
> использовать alias так же, как root.
>
>
>> 2) Как можно реализовать такое:
>> Для примера есть location
>>
>> location ^~ /some_path/ {
>> auth_basic "ACCESS DENIED";
>> auth_basic_user_file /home/user/.passwd/sample_pass_file;
>> }
>>
>> мне нужно обработать запрос а потом перенаправить его дальше,
>>
>> location ~ \.php$ {
>> fastcgi_pass unix:/var/run/spawn-fcgi.sock;
>> fastcgi_param SCRIPT_FILENAME
>> /home/user/site$fastcgi_script_name;
>> include fastcgi_params;
>> }
>>
>> но чтобы текущий блок location (^~ /some_path/ ) игнорировался и запрос
>> попал в (~ \.php$).
>> Таким образом комбинируя параметры, что-то похожее на include, но по
>> локэйшенам.
>>
>
> Насколько я понимаю, в этом случае можно воспользоваться вложенными location:
> location /some_path/ {
> auth_basic ....;
> location ~ \.php$ {
> fastcgi_pass ...;
> }
> }
>
>
>> 3) Можно ли направить запрос в именованный location, не под средством
>> try_files и error_page, а на прямую, чтоб срабатывало
>> без каких либо условий, во всех случаях ?
>> Фактически тоже самое что и во втором пункте, но с именованными @
>> локэйшенами.
>>
> На данный момент такой директивы нет. Можно писать error_page 4xx =
> @named_location и выдавать return 4xx в location, где требуется
> обработать запрос.
>
>
>
Спасибо, очень доходчиво.
Про вложенные location почемуто не знал, удобно.
С alias в named location тоже ясно.
Использовал rewrite ... break; и root в место alias.
Но показалось странным, что после того, как я указал break,
rewrite сработал снова уже для uri c подставленным index (регулярка
подошла и для него).
Хотя по логике все последующие rewrite не должны были работать после break;
More information about the nginx-ru
mailing list