ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Пару вопросов по location



Борис Долгов пишет:
Добрый день!

9 ноября 2009 г. 18:46 пользователь diem <diem@xxxxxxxxx> написал:
Версия 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;



 




Copyright © Lexa Software, 1996-2009.