Je cherche une solution à ce problème . Je comprends le raisonnement pour lequel la configuration de cette question ne fonctionne pas, mais j'essaie de trouver une solution où je peux la faire fonctionner.
L'idée est de n'autoriser le téléchargement de fichiers volumineux que sur certaines URL. Je peux utiliser un location
bloc pour cela, mais le problème est: j'ai un modèle de contrôleur frontal php:
location ~ \.php {
# ...
fastcgi_pass unix:/tmp/php5-fpm.sock;
}
Ma configuration totale ressemble à:
# ...
http {
# ...
client_max_body_size 512K;
server {
server_name example.com;
root /var/www/example.com/public;
location / {
try_files $uri /index.php?$query_string;
}
location /admin/upload {
client_max_body_size 256M;
}
location ~ \.php {
# ...
fastcgi_pass unix:/tmp/php5-fpm.sock;
}
}
}
Si je comprends bien, un seul bloc de localisation sera appliqué. Donc, si j'ai une taille de demande par défaut de 512 Ko, le 256 Mo ne sera jamais appliqué car toutes les demandes sont mises en correspondance via le modèle de contrôleur frontal ~ \.php
.
Ai-je raison dans ce cas et si oui, qu'est-ce qui peut être configuré pour que les visiteurs ne puissent rien télécharger sauf quand ils le téléchargent admin/upload
?