2016-08-14 1 views
0

Je les règles suivantes:emplacement Nginx permettent sans fin

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

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

Tout fonctionne bien jusqu'à ce que je dois permettre xmlrpc.php pour certaines adresses. Y at-il un moyen d'autoriser xmlrpc.php sans règles de duplication pour tous les autres php? Probablement quelque chose comme dire que cet emplacement est seulement pour autoriser-refuser pas pour le traitement réel.

Mise à jour: en fait, j'étais au courant d'inclure variante. Toute autre solution?

Répondre

1

déplacer les paramètres php au fichier externe php.conf

fastcgi... 

et l'inclure dans des endroits

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

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

Non, ce n'est pas ce que je demandais à propos de. Je sais comment autoriser. Je ne sais pas comment éviter de doubler le 'fastcgi ...' pour chaque exception d'url partiellement permise partielle refusée. J'ai besoin de smth comme 'jump' ou' continue'. –

1

Vous pouvez configurer votre FastCGI dans un fichier supplémentaire, comme

# /etc/nginx/fcgi_php.conf 
fastcgi_pass 127.0.0.1:9000; 
fastcgi_index index.php; 
include fastcgi_params; 

et l'utilisation ce fichier dans vos destinataires:

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