主机文件将本地主机映射到现有域而非子目录*已更新

主机文件将本地主机映射到现有域而非子目录*已更新

我正在本地通过 MAMP 开发一个网站,与其在稍后更改所有链接等,我打开etc/hosts并添加了这一行,127.0.0.1 localhost mysite.com这样我的网站就会认为它有mysite.com域名,这很好用。但是我无法访问子域内的网站部分,因此sub.mysite.com路由到localhost。有没有办法路由localhostmysite.com但仍然保持sub.mysite.com可访问性?

更新:我刚发现我的子域名正在重定向到我的域名。我猜想几乎不可能阻止 localhost 路由到某些特定目录,例如mysite.com/example/

答案1

在 Windows 中,我认为如果将“domain.com”映射到 localhost,则它与 sub.domain.com 无关。您需要在 hosts 文件中指定每个子域才能使其正常工作。

答案2

我刚刚弄清楚了问题出在哪里。如果你查看你的private/var/log/apache2/error_log(或任何你的错误日志文件)你会注意到有一个错误显示VirtualHost overlap on port XXXX

为了避免重叠(默认为第一个 VirtualHost),请NameVirtualHost在 httpd.conf 中指定,如下所示:

NameVirtualHost *:80

<VirtualHost *:80>
  DocumentRoot "/Users/Thomas/Sites/mysite"
  ServerName mysite.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "/Users/Thomas/Sites/subsite"
  ServerName sub.mysite.com
</VirtualHost>

您可能已经知道该如何做到这一点,但是我自己却很难找到答案,因此我最好让其他人更容易地找到答案。

相关内容