我已将我的网站添加到 CloudFlare。我尝试仅允许请求通过 CloudFlare 的网络进入,并拒绝所有其他请求。当我将以下内容添加到我的 .htaccess 时,我收到 HTTP 403 Forbidden。
# Cloudflare Firewall Bypass Prevention
<RequireAll>
Require all denied
Require ip 103.21.244.0/22
Require ip 103.22.200.0/22
Require ip 103.31.4.0/22
Require ip 104.16.0.0/13
Require ip 104.24.0.0/14
Require ip 108.162.192.0/18
Require ip 131.0.72.0/22
Require ip 141.101.64.0/18
Require ip 162.158.0.0/15
Require ip 172.64.0.0/13
Require ip 173.245.48.0/20
Require ip 188.114.96.0/20
Require ip 190.93.240.0/20
Require ip 197.234.240.0/22
Require ip 198.41.128.0/17
Require ip 2400:cb00::/32
Require ip 2606:4700::/32
Require ip 2803:f800::/32
Require ip 2405:b500::/32
Require ip 2405:8100::/32
Require ip 2a06:98c0::/29
Require ip 2c0f:f248::/32
</RequireAll>
IP 列表直接来自CloudFlare 的 IP 范围理论上,CloudFlare 充当我的服务器的反向代理。为什么请求不是来自 CloudFlare?有什么想法可以解决我的问题吗?或者如何修复它?
答案1
<RequireAll>
应<RequireAny>
或完全省略(因为这是默认设置,没有任何授权容器)。
答案2
通过 Tom 的回复解决了(https://stackoverflow.com/questions/39884892/apache-2-4-whitelist-cloudflare-only)
mod_cloudflare 不再受支持,但您可以使用 mod_remoteip 轻松实现同样的效果