Nginx полная защита папок не работает

Я установил nginx(1.4.3) с PHP-FPM(5.4.20). я хочу защитить свою WordPress wp-admin папка.

мой файл конфигурации nginx domain.conf:

server {
    listen 80;
    server_name  example.com;
    root /var/www;
    location / {
    index  index.php;
    try_files $uri $uri/ /index.php?$args;
    }

    location /wp-admin {
    index   index.php;
    allow   192.168.1.2;
    deny    all;
    }
    location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  PATH_INFO $fastcgi_script_name;
    fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
    include        fastcgi_params;
    }
}

Проблема: когда я загружаю wp-admin Папка в другой IP я получил 403(хорошо), но я могу загружать файлы PHP сайта. лайк /wp-admin/about.php

1 ответ

Решение

Когда вы получаете доступ /wp-admin/about.phpблок местоположения PHP обрабатывает запрос. Не /wp-admin блок.

Чтобы достичь того, что вы хотите, вам понадобится блок местоположения PHP и try_files директива внутри /wp-admin блок. Вот общее решение для вашего случая использования!

server {
  location / {
  }

  location /wp-admin {
    # try_files ...;
    # allow   ip.ip.ip.ip;
    # deny    all;

    location ~* \.php$ {
      # directives to process PHP inside wp-admin
    } 
  }

  location ~* \.php$ {
    # directives to process PHP outside wp-admin
  }
}
Другие вопросы по тегам