我已经安装了 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
}
}