この問題の解決策を探しています。その質問の設定が機能しない理由を理解していますが、私はそれを機能させることができる解決策を見つけようとします。
アイデアは、特定のURLでのみ大きなファイルのアップロードを許可することです。私はlocation
これにブロックを使用できますが、問題は次のとおりです:私はphpフロントコントローラーのパターンを持っています:
location ~ \.php {
# ...
fastcgi_pass unix:/tmp/php5-fpm.sock;
}
私の合計構成は次のようになります:
# ...
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;
}
}
}
私が理解しているように、1つのロケーションブロックのみが適用されます。したがって、デフォルトのリクエストサイズが512Kの場合、すべてのリクエストはフロントコントローラーのパターンで照合されるため、256Mは適用されません~ \.php
。
私はこの場合正しいのですか、そうである場合、訪問者がにアップロードするとき以外は何もアップロードできないように何を設定できますadmin/upload
か?