我正在本地通过 MAMP 开发一个网站,与其在稍后更改所有链接等,我打开etc/hosts
并添加了这一行,127.0.0.1 localhost mysite.com
这样我的网站就会认为它有mysite.com
域名,这很好用。但是我无法访问子域内的网站部分,因此sub.mysite.com
路由到localhost
。有没有办法路由localhost
到mysite.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>
您可能已经知道该如何做到这一点,但是我自己却很难找到答案,因此我最好让其他人更容易地找到答案。