我有nginx。其中有一个站点,站点的根目录是/ root / SITE 在这个SITE目录中,我有一些.php文件和几个目录。我如何拒绝只访问/ root / SITE目录中的.php文件(我的意思是在/ root / SITE .php文件中的那几个目录中不应该被阻止)
答案 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。
我建议你可以通过不同的,更好的方式满足需求。你应该更全面地解释你想要做什么。您尝试为应用程序创建什么样的安全性?