Nginx

Nginx 完整的文件夾保護不起作用

  • October 19, 2013

我已經用 PHP-FPM(5.4.20) 安裝了 nginx(1.4.3)。我想保護我的 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

當您訪問/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
 }
}

引用自:https://serverfault.com/questions/547145