Как я могу защитить доступ к определенным файлам php в корне моего сайта

Я хочу ограничить доступ (и только) к http://mysite.com/protected.php с помощью nginx. Что я могу попробовать? На данный момент мне удалось это сделать, но php-файл больше не интерпретируется php-fpm.

location ~ \.php($|/) {
    location ~ ^/ws(_dev)?\.php {
      auth_basic "User synchronisation webservice > please login";
      auth_basic_user_file /home/symfony/instances/somesite/ws_access;
    }
    set  $script     $uri;
    set  $path_info  "";

    if ($uri ~ "^(.+\.php)(/.*)") {
      set  $script     $1;
      set  $path_info  $2;
    }
    add_header X-Response-Host somesite.com;
    fastcgi_pass   127.0.0.1:8300;
    include /etc/nginx/fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  /home/symfony/instances/somesite/service/web$script;
    fastcgi_param  PATH_INFO   $path_info;
    fastcgi_param  SCRIPT_NAME $script;
    fastcgi_param  SERVER_PORT "80";
  }

1 ответ

Решение

Вам нужно повторить fastcgi_* директивы в вашем новом location /protected.php блок.

Другие вопросы по тегам