我需要以下配置:
- 访问
project/www/index.php
URL 为site.dev/index.php
project/www/admin/index.php
访问以下网址的页面site.dev/admin/index.php
,并admsite.dev/index.php
/etc/apache2/sites-available/site
我有以下文件:
<VirtualHost site.igoru.dev>
ServerAdmin webmaster@localhost
ServerName site.igoru.dev
DocumentRoot /var/www/site/www
ErrorLog /var/log/apache2/error.site.log
CustomLog /var/log/apache2/access.site.log combined
</VirtualHost>
<VirtualHost admsite.igoru.dev>
ServerAdmin webmaster@localhost
ServerName admsite.igoru.dev
DocumentRoot /var/www/site/www/admin
ErrorLog /var/log/apache2/error.site.log
CustomLog /var/log/apache2/access.site.log combined
</VirtualHost>
当我重新启动 Apache 时,它说第一个虚拟主机与第二个虚拟主机重叠,并且第一个虚拟主机优先。“也许您需要一个 NameVirtualHost 指令”。当我打开 URL 时,两个都指向 www/index.php 文件。
我读了一些关于该指令的文档,但对我没有帮助。
我对 Apache 配置不太熟悉,希望有人能帮我解决这个问题。
提前谢谢。
答案1
由于您的VirtualHost
块指向主机名,因此它们将绑定到进入这些名称解析到的地址的每个请求。据推测,这些解析到同一个地址,因此第一个块获取地址,而第二个块什么也没有。
您可能已经NameVirtualHost
在某处有一个指令;检查ports.conf
。如果没有,请设置一个(NameVirtualHost *:80
),然后更改您的VirtualHost
块以匹配为主机头配置的名称:
<VirtualHost *:80>
ServerName site.igoru.dev
...
</VirtualHost>
<VirtualHost *:80>
ServerName admsite.igoru.dev
...
</VirtualHost>