Nginx 完整文件夹保护不起作用

Nginx 完整文件夹保护不起作用

我已经安装了 nginx(1.4.3) 和 PHP-FPM(5.4.20)。我想保护我的 wordpresswp-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
  }
}

相关内容