как заставить работать такую конструкцию ?
Igor Sysoev
is at rambler-co.ru
Wed Jan 26 19:57:38 MSK 2005
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
More information about the nginx-ru
mailing list