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

我正在从Apache 2.2迁移到2.4,并希望使用“Require”而不愿意使用AllowDeny

我的问题:如何通过configuration文件中的每行一个地址/范围来允许从一组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 

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

升级文档有明确的信息如何做到这一点。 这也是应该阅读的情况下,以防需要任何其他configuration更改: https : //httpd.apache.org/docs/2.4/upgrading.html

你也不需要在不同的线路上放置不同的IP地址或networking。 完成以下操作是完全可以接受的:

 # 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 

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

附加信息:另一个想法是,升级时,你一定要经历所有的configuration(包括你可能拥有的任何htaccess文件),并将旧的Apache v2.2指令转换为Apache v2.4指令,然后注释掉的mod_access_compat模块。 混合使用v2.2和v.24指令会导致一些非常不寻常的问题,难以排除故障。