Запретить доступ к PHP-файлу (Nginx)

Я хочу, чтобы Nginx запретил доступ к определенному PHP-файлу, назовем его donotexposeme.php, но он, похоже, не работает, скрипт PHP запускается как обычно. Вот что у меня есть в конфигурационном файле:

location / {
    root /var/www/public_html;
    index index.php;
}

location ~ .php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/public_html$fastcgi_script_name;
    include fastcgi_params;
}

location /donotexposeme.php {
    deny all;
}

конечно, я делаю sudo service nginx reload (или restart) каждый раз, когда я редактировать конфиг.

1 ответов


порядок, в котором nginx определяет, какое местоположение соответствует, можно найти здесь:

http://wiki.nginx.org/HttpCoreModule#location

использование любого из них будет сопоставлено перед любым другим регулярным выражением:

location = /donotexposeme.php

или

location ^~ /donotexposeme\.php

первое-это точное совпадение, а вторая-регулярное выражение, префикс.