nginx 隐藏文件拒绝配置?

nginx 隐藏文件拒绝配置?

我使用以下标准配置来阻止从 nginx 下载隐藏文件:

#Prevent (deny) Access to Hidden Files with Nginx
    location ~ /\. {
            access_log off;
            log_not_found off; 
            deny all;
        }

但此配置也会阻止真正的请求,例如:

2013/10/09 17:24:46 [error] 20121#0: *593378 access forbidden by rule, client: XX.55.XXX.201, server: XYZ.org, request: "GET /vip/validate.php?id=dfddfQ&title=.Mytitle HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock", host: "xyz.org"

答案1

您可以通过在 error.log 中添加“debug”来调试 nginx 配置中哪个位置应用于您的请求:

error_log /path-to/error.log 调试;

2015/09/24 16:22:12 [调试] 16458#0:*1539 http 脚本复制:“/static.php”  
2015/09/24 16:22:12 [调试] 16458#0:*1539 http 脚本参数  
2015/09/24 16:22:12 [调试] 16458#0: *1539 http 脚本复制:“resource=”  
2015/09/24 16:22:12 [调试] 16458#0:*1539 http 脚本捕获:“frontend/Magento/luma/en_US/mage/calendar.css”  
2015/09/24 16:22:12 [调试] 16458#0:*1539 http 脚本正则表达式结束  
2015/09/24 16:22:12 [调试] 16458#0: *1539 测试位置:“/”  
2015/09/24 16:22:12 [调试] 16458#0:*1539 测试位置:“pub”  
2015/09/24 16:22:12 [调试] 16458#0: *1539 测试位置:“static/”  
2015/09/24 16:22:12 [调试] 16458#0: *1539 测试位置:“设置”  
2015/09/24 16:22:12 [调试] 16458#0:*1539 测试位置:~“/\。”  
2015/09/24 16:22:12 [调试] 16458#0:*1539 测试位置:~“/media/theme_customization/.*\.xml$”  
2015/09/24 16:22:12 [调试] 16458#0:*1539 测试位置:~“^/errors/.*\.(xml|phtml)$”  
2015/09/24 16:22:12 [调试] 16458#0:*1539 测试位置:~“cron\.php”  
2015/09/24 16:22:12 [调试] 16458#0:*1539 测试位置:~“\.php$”  
**2015/09/24 16:22:12 [调试] 16458#0: *1539 使用配置“\.php$”**  

相关内容