Nginx目录限制执行php文件

Nginx目录限制执行php文件?限制目录执行php文件方法有很多,像apache就可以搞定,iis也可以搞定,下面我来介绍在nginx中限制指定目录执行 php文件方法
方法
 代码如下 复制代码
location~^/images/.*\.(php|php5)$
{
denyall;
}
location~^/static/.*\.(php|php5)$
{
denyall;
}
location~*^/data/(attachment|avatar)/.*\.(php|php5)$
{
denyall;
}
注:这些目录的限制必须写在
 代码如下 复制代码
location~.*\.(php|php5)$
{
fastcgi_pass  127.0.0.1:9000;
fastcgi_index  index.php;
include fcgi.conf;
}
的前面,否则限制不生效!
path_info漏洞修正:
在通用fcgi.conf顶部加入
 代码如下 复制代码
if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 404;
}

1、去除单个目录去掉PHP执行权限
 代码如下 复制代码
location ~ /attachments/.*\.(php|php5)?$ {
deny all;
}
2、多个目录去掉PHP执行权限
 代码如下 复制代码
location ~ /(attachments|upload)/.*\.(php|php5)?$ {
deny all;
}
如果你想在apache中限制执行php可参考
以设置APACHE的虚拟主机配置项,是使其不能执行PHP程序
如果用.htaccess来实现某个目录需要认证,则在apache的httpd.conf里设置:
 代码如下 复制代码
<Directory /dir>  
Options Indexes FollowSymLinks  
AllowOverride AuthConfig  
order deny,allow  
</Directory>
然后在需要认证的目录(如:dir)下建立.htaccess文件