ПРОЕКТЫ 


  АРХИВ 


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: как заставить работать такую конструкцию ?



On Wed, 26 Jan 2005, Igor Sysoev wrote:

On Wed, 26 Jan 2005, Alexey Bestciokov wrote:

есть такой конфиг:

location /pop/download.php
{
        fastcgi_pass ...
        fastcgi_root ...
        fastcgi_index ...
}

location ~* ^.+\.(php)$
{
        fastcgi_pass ...
        fastcgi_root ...
        fastcgi_index ...
}

суть такова что все .php кроме одного файла (/pop/download.php) должны
обрабытывать как обычно, а /pop/download.php - отдельно. Но что то не
работает, всё обрабатывается вторым правилом :) Подскажите пожалуйста
- что и где я напутал ?

Так и должно работать. Регеэксы обрабатываются после обычных location's.
Но есть два способа запретить регэксы:

1)  location = /pop/download.php {

location работает только при точном соотвтесвии URL'а, поэтому проверять
регэксы бессмысленно.

2)  location ^~ /pop/some_uri {

"^~" запрещает проверку регксов, если URL подходит под location.

Третий способ - так как в отличие от обычных location, регэкспы обарбатываются
в порядке их написания, то в данном случае можно написать так:

 location ~ ^/pop/download.php$ {

 location ~* ^.+\.(php)$ {

Но, естественно, простое равенство "=" самое лучшее решение.


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.