我有一个部署在 AWS Beanstalk 环境中的 django 网站项目。我尝试将配置写入 apache 以阻止对特定路径 (/admin) 的访问。我避免更改 wsgi.conf 文件,而是在 .ebextensions 文件夹中编写 package.config,如下所示:
"/etc/httpd/conf.d/block_admin.conf":
mode: "000644"
owner: root
group: root
content: |
<Location /admin>
<RequireAll>
Require ip <my_ip>/32
Require all denied
</RequireAll>
</Location>
该代码拒绝对“/admin”的所有访问,包括来自我的 IP。我从以下服务获取我的 IP:我的 IP 是什么。
我究竟做错了什么?
附言:我的英语还在不断进步中……
答案1
其中<RequireAll>
包含一组授权指令,其中任何一个都不能失败,并且至少有一个必须成功才能使<RequireAll>
指令成功;因此,RequireAll 要求(没有双关语的意思)“要求所有被拒绝”不能失败,这也许不是所期望的。
您是否尝试过仅使用“需要 ip/网络掩码”?
<RequireAll>
Require ip <my_ip>/32
</RequireAll>
单个“需要 ip 网络/掩码”应该足够了RequireAll阻止从其他地方的访问。