我有以下规则:
location ~ /xmlrpc\.php {
deny all;
}
location ~ [^/]\.php(/|$) {
fastcgi...
}
一切正常,直到我需要允许xmlrpc.php
某些地址。是否有任何方法允许xmlrpc.php
没有所有其他PHP的重复规则?可能有点像告诉这个位置只是为了允许否认不是真正的处理。
更新:事实上我知道包含变体。还有其他解决办法吗?
答案 0 :(得分:1)
将php设置移至外部文件php.conf
fastcgi...
并将其包含在位置
中location ~ /xmlrpc.php {
deny all;
include php.conf
}
location ~ [^/]\.php(/|$) {
include php.conf
}
答案 1 :(得分:1)
您可以在额外的文件中配置fastcgi,例如
# /etc/nginx/fcgi_php.conf
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
并在您的位置使用此文件:
location ~ [^/]\.php(/|$) {
include fcgi_php.conf
}
# allow / deny xmlrpc.php access
location ~ xmlrpc.php {
allow 192.168.1.0/24;
deny all;
include fcgi_php.conf;
}