>Указать второй location внутри первого.
Если так:
location / {
location ^~ /administrator/ {
allow 192.168.0.0/24
deny all
}
root /www/beta/html;
index index.html index.php;
}
то долгожданный 403 я получаю только на http://site.org/administrator, но не на http://site.org/administrator/index.php
Если так:
location ~ \.php$ {
location ~* ^(/administrator/).+\.(php) {
allow 192.168.0.0/24;
deny all;
}
rewrite ^/ajaxTags.php /ajax_functions.php last;
fastcgi_buffer_size 256k;
fastcgi_buffers 6 512k;
fastcgi_pass 127.0.0.1:8000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/beta/html$fastcgi_script_name;
include fastcgi_params;
}
То опять же скачиваются php-скрипты в чистом виде.
И только таким образом:
location ~ \.php$ {
location ~* ^(/administrator/).+\.(php) {
allow 192.168.0.0/24;
deny all;
fastcgi_buffer_size 256k;
fastcgi_buffers 6 512k;
fastcgi_pass 127.0.0.1:8000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/beta/html$fastcgi_script_name;
include fastcgi_params;
}
rewrite ^/ajaxTags.php /ajax_functions.php last;
fastcgi_buffer_size 256k;
fastcgi_buffers 6 512k;
fastcgi_pass 127.0.0.1:8000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/beta/html$fastcgi_script_name;
include fastcgi_params;
}
я добился нужного результата. Но меня очень смущает то, что дублируется целая секция параметров. нельзя ли добится нужного результата более изящным способом?