2016-08-14 89 views
0

我有以下規則:Nginx的位置,允許在不終止

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

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

一切工作正常,直到我需要讓xmlrpc.php一些地址。有沒有什麼辦法可以讓xmlrpc.php沒有所有其他php的重複規則?可能是想告訴這個位置只是爲了允許否認不是用於實際處理。

更新:其實我知道包括變體。其他解決方案?

回答

1

招PHP設置到外部文件php.conf

fastcgi... 

,並將其納入地方

location ~ /xmlrpc.php { 
    deny all; 
    include php.conf 
} 

location ~ [^/]\.php(/|$) { 
    include php.conf 
} 
+0

不,這不是我所問的。我知道如何允許。我不知道如何避免將'fastcgi ...'加倍,因爲每個部分允許部分拒絕的異常url。我需要像'跳'或'繼續'。 –

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