【问题标题】:pointing external domain to subdomain将外部域指向子域
【发布时间】:2023-04-01 14:23:01
【问题描述】:

我试图实现的是一个简单的域,指向我拥有的示例

www.domain.tdl

并提供给用户

username.domain.tdl

效果很好。

但是一旦我想启用一个域指向(他们在自己的域上创建一个指向子域的 CNAME 条目),我就必须在网络服务器中为每个域设置一条记录,然后重新启动它。

如何使用 Apache 实现这样的构造?
最好的方法是什么?

最好的例子可能是 Google Mail:你可以得到 mail.yourdomain.tl

【问题讨论】:

    标签: php apache dns


    【解决方案1】:

    如果一个域指向它,它没有在虚拟主机中定义,它将自动使用第一个虚拟主机。

    因此,如果您确保该网站是第一个虚拟主机,它将自动运行。

    【讨论】:

    • 问题是用户名.. > 它用于白标签.. 我知道它采用默认网址,但问题是与该域相关的用户名..
    • 您是否有理由不能使用 PHP 根据域中的用户名显示正确的内容(或者如果用户名不存在则不允许访问)?看看$_SERVER superglobal。
    • @PeeHaa 我同意 PeeHaa,使用 PHP 显示正确的内容。
    【解决方案2】:

    如果我理解正确,您可以使用一些 bash/sh 脚本来添加新部分/扩展您的 apache2.conf 或 vhosts.conf。

    【讨论】:

    • 恕我直言,这是个坏主意,因为您需要对自己的脚本充满信心,您的脚本需要访问敏感文件,并且您必须一直重新加载 apache 配置。
    • 如果某件事需要很大的信心,它不应该写还是什么?逻辑在哪里?
    • 如果您可以避免心脏直视手术,您应该这样做。我就是这个意思。
    【解决方案3】:

    只要让您的 Apache 回答所有问题,不要受域限制。确保这个 vhost 是第一个加载到这个服务器上的。您可以通过命名来实现这一点,例如/etc/apache2/sites-available/0001-myservice.

    【讨论】:

      【解决方案4】:

      还有另一个可能的选项:configure vhost with wildcard subdomain。一样的:

      <VirtualHost *:80>
          DocumentRoot /www/subdomain
          ServerName www.domain.tld
          ServerAlias *.domain.tld
      </VirtualHost>
      

      【讨论】:

      • 这不是他问题的答案。
      • 子域的设置没有问题..更像是指向一个外部域到..在那个子域之上..所以apache意识到它与那个域相关..我最终得到一个自己的 IP 地址并使用类似的构造作为后备.. 通过 PHP 我获取主机名并根据数据库检查它
      猜你喜欢
      • 2016-03-05
      • 1970-01-01
      • 2021-06-28
      • 2016-04-25
      • 2013-07-14
      • 2018-11-30
      • 2015-10-09
      • 2021-02-01
      • 1970-01-01
      相关资源
      最近更新 更多