这本来是针对类似问题的评论,但是由于 Stack 对评论的限制非常严格,因此我按照他们的要求重新发布了它:
:这是文档:http://httpd.apache.org/docs/2.4/en/mod/mod_authz_core.html#require)
这是配置文件:
Options Indexes FollowSymLinks AllowOverride None Require ip $CIDR ~
错误仍然是:5月24日20:54:54 ip-172-16-5-34.us-west-1.compute.internal httpd [23044]:AH00526:/etc/httpd/conf.d/httpd.conf第3行语法错误:5月24日20:54:54 ip-172-16-5-34.us-west-1.compute.internal httpd [23044]:无效命令“Require”,可能是拼写错误或由服务器配置中未包含的模块定义
我错过了什么?
看起来 RequireAny 或 RequireAll 命令可能会有帮助,但事实并非如此。
供您参考,此处提供的信息不够: 我如何需要一个 IP 范围而不是 1 个 IP?
答案1
Require ip $CIDR ~
不合适Options
指示。文档非常清楚地说明了Options
指令中可能包含的内容。
Require
是其自身的指令,它可以在容器中,但肯定不能在Options
指令内。
当你解决了这个问题后,你的下一个问题可能是Require ip $CIDR ~
。你从哪里得到这个$CIDR ~
位?你需要遵循正确的规范主机访问控制和规范Require ip
指令。
如果事实上,您实际上有Require ip $CIDR ~
自己的配置行,而不是您在问题中输入的内容,那么请参考此答案的最后一部分(即使用正确的主机/ip 规范Require ip
)并参阅以下注释。
注意:您必须已mod_authz_core
加载才能使用Require
(和相关)指令。
还要注意:您应该apachectl -t
在尝试重新启动 Apache 之前运行检查配置更改,而不是通过使 Apache 崩溃来发现这些问题。