我在运行OS X Mavericks的个人Macintosh上有三个运行在apache2上的虚拟主机,我遇到了一些困惑。 它们在我的httpd-vhosts.conf文件中configuration如下:
<VirtualHost *:80> DocumentRoot "/Library/WebServer/Documents" ServerName localhost ServerAlias localhost </VirtualHost> <VirtualHost *:80> DocumentRoot "/Library/WebServer/Documents/dev1" ServerName dev1.local ServerAlias www.dev1.local </VirtualHost> <VirtualHost *:80> DocumentRoot "/Library/WebServer/Documents/dev2" ServerName dev2.local ServerAlias www.dev2.local </VirtualHost> <VirtualHost *:80> DocumentRoot "/Library/WebServer/Documents/dev3” ServerName dev3.local ServerAlias www.dev3.local </VirtualHost>
注意:第一个条目允许我input“localhost”,并在没有运行虚拟主机的情况下按照您的预期加载它。
dev1和dev2工作正常,但我得到一个错误404说:“请求的URL /在这台服务器上找不到”。 当我尝试在本地机器上加载dev3时。 所有三个开发文件夹都具有相同的权限,我已经validation了名称。 当我检查了error_log我发现这个:
[Fri Jan 24 12:55:07 2014] [error] [client 127.0.0.1]文件不存在:/ Library / WebServer / Documents / dev3 \ xe2 \ x80 \ x9d
有谁知道为什么Apache将“\ xe2 \ x80 \ x9d”附加到文件夹path的末尾,或者为什么dev3不加载? (我怀疑这些随机附加的字符是为什么)任何input的欢迎! 谢谢阅读!
DocumentRoot "/Library/WebServer/Documents/dev3” ^----- no proper quotation mark :9
如果你安装了PHP:
<?php echo "\xe2\x80\x9d"; // or echo utf8_decode("\xe2\x80\x9d"); // should give you ”
您错过了VirtualHost设置。
NG: DocumentRoot "/Library/WebServer/Documents/dev2"
OK: DocumentRoot /Library/WebServer/Documents/dev2