我有一个指向我的 IP 地址的域名,现在我想执行以下操作:如果我在本地访问服务器(localhost / 127.0.0.1),我希望它从默认 DocumentRoot 提供页面。如果我使用域名访问服务器,它会从其他目录提供文件。
我编辑了 httpd.conf,添加了以下几行:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "C:/Xampp/htdocs/mydomain"
ServerName mydomain.com
</VirtualHost>
不幸的是,它不能按预期工作 - 即使我通过本地主机访问服务器,它也会从“C:/Xampp/htdocs/mydomain”提供文件。
我如何解决它?
答案1
以下是您想要的:
http://httpd.apache.org/docs/1.3/vhosts/name-based.html
现在,当请求到达时,服务器将首先检查它是否正在使用与 NameVirtualHost 匹配的 IP 地址。如果是,它将查看具有匹配 IP 地址的每个部分,并尝试找到 ServerName 或 ServerAlias 与请求的主机名匹配的部分。如果找到一个,它将使用该服务器的配置。如果未找到匹配的虚拟主机,则将使用与 IP 地址匹配的第一个列出的虚拟主机。
因此,第一个列出的虚拟主机是默认虚拟主机。当 IP 地址与 NameVirtualHost 指令匹配时,主服务器的 DocumentRoot 将永远不会被使用。如果您希望对与任何特定虚拟主机不匹配的请求进行特殊配置,只需将该配置放入容器中并将其列在配置文件中的第一个位置即可。