在 Apache 2.4 中使用 Require 指令允许多个 IP

mim*_*imo 8 apache-2.4

我正在从 Apache 2.2 迁移到 2.4,并且希望使用“Require”而不是现在不鼓励使用Allow, Deny

我的问题:如何通过配置文件中的每行一个地址/范围来允许从一组 IP 地址或范围进行访问?

使用 Apache 2.2,我使用了:

Order deny,allow
Deny from all
Allow from 2001:1000:2000::1/64
Allow from 1.2.3.4
Allow from 1.2.3.10
Run Code Online (Sandbox Code Playgroud)

这将如何转化为新的访问控制语法?

Unb*_*ver 21

升级文件,对如何做到这一点的明确信息。如果需要任何其他配置更改,也应该阅读它:https : //httpd.apache.org/docs/2.4/upgrading.html

此外,您不需要将不同的 IP 地址或网络放在不同的行上。执行以下操作是完全可以接受的:

# Apache v2.2
Allow from 1.2.3.4 1.2.3.10
# Apache v2.4
Require ip 1.2.3.4 1.2.3.10
Run Code Online (Sandbox Code Playgroud)

最后,默认情况下,多个 require 指令被视为在一个<RequireAny>块中,因此除非您正在形成一个更复杂的嵌套分组,否则您不需要添加它。当然,您可能希望澄清。参考:https : //httpd.apache.org/docs/2.4/howto/auth.html#beyond

附加信息:另一种想法是,升级时您一定要检查所有配置(包括htaccess您可能拥有的任何文件)并将旧的 Apache v2.2 指令转换为 Apache v2.4 指令,然后注释掉该mod_access_compat模块。混合使用 v2.2 和 v.24 指令可能会导致一些非常不寻常的问题,这些问题很难解决。