让浏览器到达本地开发机器上的服务器别名的正确方法是什么?

让浏览器到达本地开发机器上的服务器别名的正确方法是什么?

以下是我在本地开发机器上配置的虚拟主机:

#
<VirtualHost *:80>
    ServerName mytestsite
    ServerAlias x.mytestsite    
    ServerAlias y.mytestsite
    DocumentRoot "c:/wamp64/www/mytestsite"
    <Directory  "c:/wamp64/www/mytestsite/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>
  1. 在浏览器中输入mytestsitex.mytestsitey.mytestsite- 后,它会在 Google 搜索中打开。有什么方法可以让上述名称指向虚拟主机站点吗?

  2. 在浏览器中,当我输入mytestsite/时,它会连接到我的本地站点。但是,当我输入x.mytestsite/y.mytestsite/时 - 它会说找不到网页。使其他 2 个子域正常工作的正确方法是什么?

  3. 作为一种试验方法,我修改了计算机上的 hosts 文件,并添加了以下几行,如下所示;现在所有 3 个(mytestsite/x.mytestsite/y.mytestsite/)都可以正常工作。但是,修改计算机上的 hosts 文件是否正确,以使子域名正常工作?


127.0.0.1 mytestsite
127.0.0.1 x.mytestsite
127.0.0.1 y.mytestsite

答案1

您所描述的问题不是 Apache 的问题,而是域解析的问题(虽然我以前没有在 Apache 上看到过 2 条服务器别名行 - 别名通常位于 1 行,以空格分隔。这可能是有效的语法,或者可能只是恢复为默认值)

解决此问题的正确方法是将子域添加到 DNS 服务器区域记录。

如果您只打算使用本地机器访问这些地址,将其放在 hosts 文件中就足够了 - 但这只适用于已编辑 hists 条目的机器。

答案2

顾名思义,主办方文件仅用于主机名。它不支持通配符条目或类似内容。语法为:

IP_address canonical_hostname [aliases...]

同一 IP 地址的多个条目也有效。

如果需要example.coma.example.comb.example.com,则需要将所有三个主机名明确添加到主办方文件。所以,是的,你的方法是正确的。

如果您想要更好的人体工程学,请考虑使用支持通配符的 DNS 服务器/转发器。域名系统就是这样一个项目。也许systemd-已解决也可以做到,但我不太熟悉。

相关内容