<Proxy *>
Order deny,allow
Deny from all
Allow from cdn1.domain.com cdn2.domain.com cdn3.domain.com cdn4.domain.com cdn5.domain.com
</Proxy>
实际上比这要长得多。是否可以以某种方式使用正则表达式?我正在运行 2.2
答案1
如果您可以允许所有主机进入domain.com
,那么就非常简单了:
Allow from .domain.com
如果您只需要允许这些cdn*
主机,那么您就倒霉了 - 正则表达式不受支持Allow
,并且其他访问控制机制无法执行必要的反向 DNS 查找(例如mod_rewrite
或SetEnvIf
使用Allow from env=
)。
正如 EightBitTony 在评论中提到的,您需要使用其他标准来控制访问——IP 范围是最好的。
编辑:实际上,mod_rewrite
可能能够使用REMOTE_HOST
变量。也许可以尝试这样的方法?不确定它是否会进行反向查找和正向查找来确认,因此安全性可能不那么可靠。
RewriteCond %{REMOTE_HOST} ^cdn\d+\.domain\.com$
RewriteRule ^ - [E:CDNALLOW]
Allow from env=CDNALLOW
答案2
的文档允许指令非常好,它表示允许接受部分名称,因此
Allow from domain.com
只要您不介意 domain.com 的其余部分访问代理,就可以在某种程度上简化它,但对于主机的正向/反向 DNS 查找也存在一些注意事项。
如果 cdn 机器共享子网或部分子网,您可能也可以对此采取一些措施。
答案3
1)如果 domain.com 下的任何内容都可以,则可以使用前导点(即 .domain.com )
2)您可以填充环境变量并让 Apache 引用它。
allow from env=allowed_cdn_hosts