Nginx位置允许不终止

时间:2016-08-14 16:54:43

标签: php nginx fastcgi

我有以下规则:

location ~ /xmlrpc\.php {
    deny all;
}

location ~ [^/]\.php(/|$) {
    fastcgi...
}

一切正常,直到我需要允许xmlrpc.php某些地址。是否有任何方法允许xmlrpc.php没有所有其他PHP的重复规则?可能有点像告诉这个位置只是为了允许否认不是真正的处理。

更新:事实上我知道包含变体。还有其他解决办法吗?

2 个答案:

答案 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;
}