如何在 Apache 中允许通配符域名

如何在 Apache 中允许通配符域名

我已经为我的一个域配置了 apache 身份验证。我希望 apache 不应提示输入本地 ip 和 *.myexternaldomain.com 的密码。目前,使用以下配置,它仅适用于 myexternaldomain.com。

    Order deny,allow
    Deny from all
    AllowOverride All
    AuthType Basic
    AuthName "Webyog Gateway Authentication"
    AuthUserFile /etc/httpd/httpdpasswd
    Require user webyog
    Allow from myexternaldomain.com 192.168.1.0/24
    Satisfy Any

如何在上述配置中允许像 *.myexternaldomain.com 这样的通配符域名?

温暖的问候

苏普拉提克

答案1

此配置已经允许 *.myexternaldomain.com,但正如 apache 文档所说:

此配置将导致 Apache 对客户端 IP 地址执行双重反向 DNS 查找,无论 HostnameLookups 指令的设置如何。它将对 IP 地址执行反向 DNS 查找以查找关联的主机名,然后对主机名执行正向查找以确保它与原始 IP 地址匹配。只有正向和反向 DNS 一致且主机名匹配时,才会允许访问。

我猜测,您对 myexternaldomain.com 子域的反向 DNS 查找没有按预期工作。

答案2

看一下此链接。此配置应该可以工作!请参阅以下示例:

A (partial) domain-name
    Example:

    Allow from apache.org
    Allow from .net example.edu

    Hosts whose names match, or end in, this string are allowed access. Only complete components are matched, so the above example will match foo.apache.org but it will not match fooapache.org. 

答案3

您应该编写2个允许指令:

Allow from myexternaldomain.com 
Allow from 192.168.1.0/24

但是,正如 heiko 所写,使用域名不是一个好的做法。

相关内容