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

我用PHP-FPM(5.4.20)安装了nginx(1.4.3)。 我想保护我的wordpress wp-admin文件夹。

我的nginxconfiguration文件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(罚款),但我能够加载insite PHP文件。 像/wp-admin/about.php

当你访问/wp-admin/about.php ,PHP位置块处理请求。 不是/wp-admin块。

为了实现你想要的,你需要一个PHP位置块和/wp-admin块内的try_files指令。 这是您的用例的通用解决scheme!

 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 } }