2014-02-10 34 views
1

我想知道如何设置一个通配符DNS只有第一级子域名,例如:通配符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 [email protected] 
    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 [email protected] 
    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> 

请帮帮忙!

回答

2

你不能在DNS中做 - 通配符将匹配一个或更多 DNS标签。

可能能够做到这一点的Apache服务器,比如用mod_rewrite匹配所提供的主机名,如果主机名无效返回404错误。

+0

这就是我在问这个问题之前所做的,但是谢谢澄清这是不可能的。 ;) –