建议将网站目录的PHP权限去掉,当访问上传目录下的php文件时就会返回403错误。
首先要编辑nginx的虚拟主机配置,在fastcgi的location语句的前面按下面的内容添加:
1、单个目录去掉PHP执行权限
location ~ /attachments/.*\.(php|php5)?$ {
deny all;
}
将attachments目录的PHP执行权限去掉。
2、多个目录去掉PHP执行权限
location ~ /(attachments|upload)/.*\.(php|php5)?$ {
deny all;
}
将attachments、upload这二个目录的PHP执行权限去掉。
附上一个完整的虚拟主机的例子供参考:
server
{
listen 80;
server_name bbs.xsdou.com;
index index.html index.htm index.php;
root /home/wwwroot/bbs.xsdou.com;
include discuz.conf;
location ~ /(attachments|upload)/.*\.(php|php5)?$ {
deny all;
}
location ~ .*\.(php|php5)?$
{
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
access_log off;
}