我有一个名为admin
的文件夹,它位于var/www/html
目录中。
我想从公共互联网访问该文件夹,即只允许从localhost访问。
为了那个原因
1)在whitelist-admin
目录中创建了一个文件sites-available
并添加了以下内容。
server{
location ~ /admin/.*\.php$ {
allow 127.0.0.1;
try_files $uri $uri/ /index.php;
deny all;
}
}
当我访问<public-ip>/admin
我得到403
错误但链接<public-ip>/admin/index.php
工作,我想禁用它。
server{
location = /admin { #its good to block the admin alone too
allow 127.0.0.1;
deny all;i
try_files $uri $uri/ /index.php;
}
location ^~ /admin/ { #block anything beggining with /admin/
allow 127.0.0.1;
deny all;
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#fastcgi_index index.php;
# With php7.0-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm: fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
此配置应仅允许localhost连接,并拒绝任何管理URL上的所有其他连接。
另一方面,如果您被机器阻止,可能是因为您通过公共IP而不是直接通过localhost发出请求。(例如:如果您通过互联网进行重定向,您的IP将是服务器ip,不是localhost)。
这应该是诀窍,如果没有,也许有另一个位置捕获连接而不是这个。评论它是否有效或什么不起作用。
编辑:
^〜表示这是配置上最好的“〜”,它将是“=”位置之后要检查的第一个。这应该优先于.php位置上的/ admin /位置。
这应该工作。 (最后:D)