如何通过名称和 IP 访问 Apache 虚拟主机

How to access Apache VirtualHost via both Name & IP

我在家用计算机上使用 Apache VirtualHosts 和 2 个本地域进行开发和测试。

• d4damage.local (personal websites)

• company.local (work stuff on external drive)

它在我的网络上运行良好。但是,我还需要通过IP192.168.1.60选择性地访问d4damage.local(我的电脑固定为这个IP)

原因是我的 PS3 无法解析 d4damage.local,但可以通过 IP。 (我所有其他 Wi-Fi 设备都可以使用 d4damage.local

看来我可以设置 d4damage.local 来处理 IP 或名称,但不能同时处理两者。 (403 forbidden) 注释行显示备选方案。

httpd-vhosts.conf

#NameVirtualHost 192.168.1.60:80
#<VirtualHost 192.168.1.60:80>
<VirtualHost *:80>
    ServerAdmin admin@d4damage.local
    DocumentRoot "/Users/paul/Sites"
    ServerName d4damage.local
    ErrorLog "/private/var/log/apache2/d4damage.local-error_log"
    CustomLog "/private/var/log/apache2/d4damage.local-access_log" common
</VirtualHost>

httpd.conf

ServerName d4damage.local
...
DocumentRoot "/Users/paul/Sites"
<Directory "/Users/paul/Sites">

主机

127.0.0.1 localhost 
192.168.1.60 company.local d4damage.local 
255.255.255.255 broadcasthost 
::1 localhost 
fe80::1%lo0 localhost

以上文件涉及我希望在我的计算机上使用的主域,company.local 一个是附加的,我不需要通过 IP 访问它。

希望对您有所帮助!谢谢。

您需要编辑您的主机文件,常见于“/etc/hosts”。

sudo nano /etc/hosts

和这样的新行:

192.168.1.60  d4damage.local

保存文件并重新启动。

啊哈!我发现了问题。 我(不小心)在 vhosts 文件中留下了示例 vhosts dummy-host.example.com 并且简单地评论说阻止已经解决了问题。我假设因为虚拟 name/directory 未在 httpd.conf 中定义,因此导致配置错误。

所以答案是确保您删除或注释掉 httpd-vhosts.conf

中的虚拟示例