【问题标题】:What is the correct way to use wildcard DNS?使用通配符 DNS 的正确方法是什么?
【发布时间】:2014-10-31 16:10:11
【问题描述】:

我需要 apache 虚拟主机遵循以下规则:

1- 如果 domain.com 或 www.domain.com 则显示 /var/www/domain.com/home 中的内容

2- 如果 blog.domain.com 则显示 /var/www/domain.com/blog 中的内容

3- 如果是通配符 (*),则显示 /var/www/domain.com/platform 中的内容

为了实现这一点,我按如下方式编辑了我的虚拟主机:

ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/domain.com/public_html/home

ServerName domain.com
ServerAlias blog.domain.com
DocumentRoot /var/www/domain.com/public_html/blog

ServerName domain.com
ServerAlias *.domain.com
DocumentRoot /var/www/domain.com/public_html/plataforma

DNS 区域:

@IN A 111.111.1.111

(*) CNAME @

怀疑:

我的做法是不是很好?如果不是,那又如何?我是否需要在 DNS 区域中为 wwwblog 创建记录?

【问题讨论】:

  • 您不能在同一个virtualhost 上有多个ServerNameServerAlias。但是,您可以在ServerAlias 上拥有多个地址用空格分隔,例如ServerAlias www.domain.com *.domain.com。如果将所有内容都指向文档根目录,则可以使用 .htaccess 轻松重定向域。
  • 对不起。每个都在不同的 VirtualHost 中。我只是在没有 的情况下复制并过去。

标签: apache subdomain wildcard virtualhost


【解决方案1】:

只要您有一个指向正确服务器的 *.domain.tld 条目并且所有 3 个网站都在同一主机上运行,​​您就不必在 DNS 中创建记录。如果您想继续前进并将其中一个网站迁移到另一台服务器,则必须将此特定子域添加到 DNS。

我认为总的来说这不是一个非常糟糕的设置,但我不确定第二个和第三个网站的 ServerName 值是否应该与第一个不同。愿你应该使用 Alias 作为 ServerName 并在第二个和第三个条目中完全摆脱 Alias。

【讨论】:

  • Apache 在第三个条目中返回以下错误以及您给我的建议:“无效的服务器名称 *.domain.com,使用 ServerAlias 设置多个服务器名称。”
  • 我更多的是考虑这样的事情:ServerName blog.domain.com DocumentRoot /var/www/domain.com/public_html/blog ServerName plataforma.domain.com DocumentRoot /var/www/domain。 com/public_html/plataforma
猜你喜欢
  • 1970-01-01
  • 2012-08-22
  • 1970-01-01
  • 2021-12-02
  • 2021-11-24
  • 2021-09-23
  • 2017-04-07
  • 2013-01-09
  • 2013-03-19
相关资源
最近更新 更多