我正在运行Apache2.4,根据我在Apache网站(http://httpd.apache.org/docs/current/sections.html)上找到的文档,在“如何合并各节”一节中,它指出虚拟主机配置应该覆盖服务器配置。
我有一个文件匹配服务器配置regex,以防止使用"order,allow“逻辑对重要wordpress文件的公共访问:
<FilesMatch "wp-login\.php|xmlrpc\.php|admin-ajax\.php">
Include conf/global_acl.conf
</FilesMatch>然后,在我的虚拟主机下,我有另一个文件匹配,允许对特定文件的特定访问,以启用wordpress插件:
<FilesMatch "^(xmlrpc|wp-trackback)\.php$">
Order Deny,Allow
Allow from wordpress.com
Allow from 123.123.123.123
</FilesMatch>我的目标是让服务器配置允许进程由虚拟主机继承,然后由虚拟主机解析附加的allow指令。它似乎不起作用。如果通过删除xmlrpc文件来修改服务器级别,则虚拟主机将工作。
编辑
为了消除混淆,我的问题是,在虚拟主机下,即使我使用IP 123.123.123.123,也会被拒绝。我期望虚拟主机继承服务器配置中的白名单条目。然后,在虚拟主机配置中有额外的白名单允许。在我的服务器配置顶部,我有一个否认。
有什么好主意吗?提前感谢!
发布于 2015-06-18 17:21:31
在2.4中所做的一项更改是替换了新的Require所允许的语法,所有这些都是允许的和类似的。请参见apache升级文档部分访问控制。
您可以使用compat模块来避免更改。如果您使用它,并选择Order Deny,Allow,那么如果您没有Deny语句,那么将允许所有的访问(参见apache compat: Order)。
所以要么使用Order Allow,Deny,要么添加一个Deny from all。
https://serverfault.com/questions/699998
复制相似问题