Назад | Перейти на главную страницу

Полная защита папок 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

Когда вы получаете доступ /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
  }
}