我在运行 OS X Mavericks 的个人 Macintosh 上有三个在 apache2 中运行的虚拟主机,我遇到了一些困惑。它们在我的 httpd-vhosts.conf 文件中的配置如下:
<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>
注意:第一个条目允许我输入“localhost”并让其按您期望的方式加载,而无需运行虚拟主机。
dev1 和 dev2 工作正常,但当我尝试在本地计算机上加载 dev3 时,出现错误 404,提示“在此服务器上未找到请求的 URL /”。所有三个 Dev 文件夹都具有相同的权限,我已验证了名称。当我检查 error_log 时,我发现了以下内容:
[2014 年 1 月 24 日星期五 12:55:07] [错误] [客户端 127.0.0.1] 文件不存在:/Library/WebServer/Documents/dev3\xe2\x80\x9d
有谁知道为什么 Apache 在文件夹路径末尾附加了“\xe2\x80\x9d”,或者为什么 dev3 没有加载?(我怀疑这些随机附加的字符就是原因)欢迎提供任何意见!谢谢阅读!
答案1
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 ”
答案2
您错过了VirtualHost
设置。
不良:DocumentRoot "/Library/WebServer/Documents/dev2"
好的:DocumentRoot /Library/WebServer/Documents/dev2
答案3
DocumentRoot“/图书馆/ Web服务器/文档”
它应该是
DocumentRoot /图书馆/ Web服务器/文档
DocumentRoot 中没有“”