nginx下禁止目录运行php脚本
By admin
- One minute read - 59 words为了安全起见,我们一般会对上传目录禁止运行php脚本
在 apache 下面我们可以通过:
php_flag engine off
的方式来来禁用目录下文件php执行权限。
那么在 nginx 里面同样可以实现这种方法,那就是location的优先匹配,关于location可以参考我之前的一批文章http://226617.cn/archives/392.htm
这里简单就举个例子
location ^~ /attachments/
{
access_log off;
}
这样 attachments这个目录 就不会再去跳转给fastcgi去执行php了.这里利用了nginx下location指令的处理顺序优先级特点.
但上面的方法只能算一种技巧,一般不这样设置,正确的方法为:
location /upload/ {
location ~ .*.(php)?$
{
deny all;
}
}
而对于多个目录的话,可以一起进行限定:
location ~* ^/(attachments|images)/.*.(php|php5)$
{
deny all;
}
注意这段secion一定要放在 指定的php section的前面才可以生效的.
location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/www$fastcgi_script_name; include fastcgi_params; }