如何设置 DNS 以使用捕获所有地址?

如何设置 DNS 以使用捕获所有地址?

这实际上不是一个编程问题,而更多的是有关我可以通过视觉改变的设置。

我已经购买了一个域名,并且想知道如何让它工作,使得除了我已经设置的内容(例如 pop.example.com)之外的所有内容都被转发到 www.example.com(或 *.example.com)。

像这样的东西:

  • pop.example.com
  • ftp.example.com
  • my.example.com

转到相应的 URL,但是:

  • idontknowwhattheurlwas.example.com
  • ivemistypedsomething.example.com
  • bla.example.com
  • 123.example.com

是 www.example.com 的别名。

在 DNS 配置中添加规则的选项包括:

  • A
  • 高级
  • 墨西哥
  • TXT
  • 别名记录
  • 服务车辆

或者也许使用 .htaccess 来做到这一点更好?如果是这样,我应该如何配置它?

答案1

您需要两者:

在 DNS 区域设置中输入(最后一个,最好的)

*.your_domain.foo.  IN  A   999.999.999.999 # correct this csi-like ip

域名中的最后一个点非常重要。

这会将 any.your_domain.foo 与您的 IP 匹配。您可以在之前放置其他子域/ip 的其他条目。

在 apache / 其他 Web 服务器中,你必须设置一个 vhost 或其他东西来处理所有请求,并将 ServerAlias / ServerName 设置为

ServerAlias *.your_domain.foo

再次将此 Vhost 放在最后,在默认 Vhost 之前定义 your_domain.foo 中任何现有的 Vhost。

Apache 使用 ascii 排序方案加载配置文件,因此将其放在一个099_default文件中,并在前面添加其他内容050_

就你的情况而言,DNS 应该允许你使用*.yourdomain.foo.区域内定义,我认为你可以使用 mod_rewrite(如果已启用)来存档 apache 部分。我认为有一些方法可以使用变量SERVER_NAME作为条件的重写来模拟虚拟主机。检查http://httpd.apache.org/docs/2.3/rewrite/vhosts.html。我还没试过。

答案2

您可以在 DNS 中执行此操作。如果您有一个健全的(类似绑定的)DNS服务器,则需要将类似以下内容添加到区域的配置中:

server.example.com.  A      192.168.1.1
*.example.com.       CNAME  server.example.com.

它为通配符创建一个别名并将其指向服务器的地址。您也可以直接执行此操作:

*.example.com.       A      192.168.1.1

但出于管理原因,第一种解决方案通常更好。完成此操作后,您将创建一个镜像 www.example.com 主机的万能虚拟主机。

答案3

使用星号:

*.example.com CNAME www.example.com www.example.com A 192.168.1.5

答案4

它的名字是 jocker。在您的 DNS 配置中输入您想要的所有名称,然后添加以下行

* CNAME www.example.com

所有未知名称将被 CNAMED 为 www.example.com

相关内容