Nginx阻止根目录

时间:2015-06-29 21:23:01

标签: php http nginx server-side

我有nginx。其中有一个站点,站点的根目录是/ root / SITE 在这个SITE目录中,我有一些.php文件和几个目录。我如何拒绝只访问/ root / SITE目录中的.php文件(我的意思是在/ root / SITE .php文件中的那几个目录中不应该被阻止)

1 个答案:

答案 0 :(得分:0)

所以你要求Nginx配置中的这个服务器块,只允许PHP文件,其他一切都会得到404?有很多方法可以做到这一点(最好在更具特色的Nginx中提问) - 这里只有一种方式:

server {
    listen 1.2.3.4:80;
    server_name example.com;
    root /root/SITE;
    location ~ \.php$ {
        include fastcgi.conf;
    }
    location ~ .* {
        return 404;
    }
}

请注意,使用此方法时,位置块的顺序很重要,因为第一个正则表达式位置获胜。此外,如果由于某种原因需要支持~*文件,则可以使用不区分大小写的位置正则表达式运算符.PHP

请记住,这意味着图像文件和CSS文件以及其他任何内容都将被拒绝。如果您通过PHP推送(或创建它们),您将只能提供图像和样式表。这也不允许您通过浏览到没有尾随文件名的站点根来访问index.php。

我建议你可以通过不同的,更好的方式满足需求。你应该更全面地解释你想要做什么。您尝试为应用程序创建什么样的安全性?