La façon dont nginx interdit l'exécution de scripts php dans un répertoire spécifié est de faire correspondre directement les conditions d'emplacement, puis d'interdire les autorisations, telles que [location ~* ^/uploads/.*.(php|php5)${deny tous;}].
Les autorisations sont interdites après avoir répondu directement aux conditions de localisation.
(Recommandation vidéo d'apprentissage : cours java)
Ajoutez la configuration suivante dans la section configuration du serveur
S'il s'agit d'un seul répertoire
location ~* ^/uploads/.*\.(php|php5)$ { deny all; }
S'il y a plusieurs répertoires
location ~* ^/(attachments|uploads)/.*\.(php|php5)$ { deny all; }
Remarque : Ce fichier de configuration doit être placé devant la configuration suivante pour prendre effet.
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
Exemple de configuration complète
location ~ /mm/(data|uploads|templets)/*.(php)$ { deny all; } location ~ .php$ { try_files $uri /404.html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
Une fois la configuration terminée, Nginx doit être redémarré pour prendre effet.
Recommandations associées : formation php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!