我在我的笔记本电脑上设置了虚拟主机,我知道工作正常,因为我经常在工作和学校使用它们,但无论出于什么原因,当我在我的父母家连接到他们的家庭网络时,我得到404。如果我从网络断开连接,我会被Apache打败。这是我的httpd.conf文件内容(仅涉及虚拟主机的部分):
NameVirtualHost *
<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *>
DocumentRoot "/Users/kyle/Sites/ESA/app/public"
ServerName esa.loc
<Directory "/Users/kyle/Sites/ESA/app/public">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Allow from all
Allow from 127.0.0.1
</Directory>
</VirtualHost>
<VirtualHost *>
DocumentRoot "/Users/kyle/Sites/portfolio-site/public"
ServerName kyle.loc
<Directory "/Users/kyle/Sites/portfolio-site/public">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Allow from all
Allow from 127.0.0.1
</Directory>
</VirtualHost>
和我的/ etc / hosts文件:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost esa.loc kyle.loc
255.255.255.255 broadcasthost
::1 localhost esa.loc kyle.loc
fe80::1%lo0 localhost esa.loc kyle.loc
如果您需要更多信息,请告诉我,我会尽力提供。感谢。
编辑:忘了提到我尝试将我的笔记本电脑添加到路由器上的DMZ,但这并没有解决问题。答案 0 :(得分:36)
确保取消注释该行
在你的apache conf文件中。
答案 1 :(得分:5)
我真的不确定,但Virtualhost是否应该包含有关端口的一些信息?就像:
<VirtualHost *:80>
我认为您可以删除这些行,因为它在您的情况下无用
NameVirtualHost *
Allow from 127.0.0.1
当你在上面一行使用“全部允许”时,在“允许”中使用ip地址没有任何意义