есть такой конфиг:
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