下面和大家一起分享下如何在Nginx禁止上传目录里PHP的执行权限。
在虚拟主机配置文件中增加php_flagengineoff指令即可,配置如下:
"/website/uploads">OptionsFollowSymLinksAllowOverrideNoneOrderallow,denyAllowfromallphp_flagengineoff
Nginx更简单,直接通过location条件匹配定位后进行权限禁止。
在server配置段中增加如下的配置
如果是单个目录
location~*^/uploads/.*.(php|php5)${denyall;}
如果是多个目录
location~*^/(attachments|uploads)/.*.(php|php5)${denyall;}
注意:这段配置文件一定要放在下面配置的前面才可以生效。
location~.php${fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}
最后给一个完整的配置示例
location~/mm/(data|uploads|templets)/*.(php)${denyall;}location~.php${try_files$uri/404.html;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}
配置完后记得重启Nginx生效。