【问题标题】:Wildcard DNS for only first level subdomain仅用于第一级子域的通配符 DNS
【发布时间】:2014-03-08 10:25:25
【问题描述】:

我想知道如何只为一级子域设置通配符DNS,例如:

user.example.com     // valid
www.user.example.com // invalid

我的 BIND 区域域配置如下:

; example.com
$TTL 86400
@       IN      SOA     ns.example.com. domain.example.com. (
                                        2014021001 ; Serial
                                        28800      ; Refresh
                                        1800       ; Retry
                                        604800     ; Expire - 1 week
                                        86400 )    ; Minimum

                IN      NS      ns
                IN      NS      ns1

ns              IN      A       1.2.3.4 ; An IP
ns1             IN      A       1.2.3.4 ; An IP

@               IN      A       1.2.3.4 ; An IP
*.example.com   IN      A       1.2.3.4 ; An IP
www             IN      A       1.2.3.4 ; An IP

@               IN      TXT     "v=spf1 a mx -all"

而我的 Apache 虚拟主机配置是这样的:

<VirtualHost 1.2.3.4:80>
  ServerAdmin domain@example.com
  DocumentRoot /var/www/html/example.com
  ServerAlias www.example.com
  ServerName example.com
  ErrorLog logs/example.com-error_log
  CustomLog logs/example.com-access_log common
</VirtualHost>

<VirtualHost 1.2.3.4:80>
  ServerAdmin domain@example.com
  DocumentRoot /var/www/html/apps.example.com
  ServerAlias *.example.com
  ServerName apps.example.com
  ErrorLog logs/apps.example.com-error_log
  CustomLog logs/apps.example.com-access_log common
</VirtualHost>

请帮忙!

【问题讨论】:

  • 你是如何解决这个问题的?

标签: dns wildcard-subdomain


【解决方案1】:

您不能在 DNS 中执行此操作 - 通配符将匹配一个或 更多 个 DNS 标签。

也许可以在 Apache 服务器中执行此操作,也许通过使用 mod_rewrite 匹配提供的主机名并在主机名无效时返回 404 错误。

【讨论】:

  • 这就是我在问这个问题之前所做的,但感谢您澄清这是不可能的。 ;)
  • @alnitak 如何处理 mod_rewrite ?
猜你喜欢
  • 2016-03-14
  • 1970-01-01
  • 2022-01-07
  • 2017-12-14
  • 1970-01-01
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
  • 2018-05-28
相关资源
最近更新 更多