gpt4 book ai didi

apache - 虚拟主机子域指向错误的目录

转载 作者:行者123 更新时间:2023-12-02 06:38:16 26 4
gpt4 key购买 nike

我创建了 2 个虚拟主机 http://web1.com:2107 指向“/var/www/web1”文件夹,第二个 http://web2.com:2107 指向“/var/www/web2”。 web2 中的所有子域都工作正常,但对于 web1.com:2107 我只能看到主页。当我尝试从 web1 打开任何子域(例如 http://games.web1.com:2107)时,它指向 web2 的主页,即/var/www/web2/目录

配置有问题吗?

下面是我正在使用的主机的代码

<VirtualHost *:80>
ServerName web2.com
ServerAdmin myeow@web2.com
ServerAlias http://www.web2.com
DocumentRoot /var/www/web2
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/web2>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/www/web2/error80.log
CustomLog /var/www/web2/access80.log Combined
</VirtualHost>

<VirtualHost *:2107>
ServerName web2.com
ServerAdmin myeow@web2.com
ServerAlias http://www.web2.com
DocumentRoot /var/www/web2
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/web2>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/www/web2/error.log
CustomLog /var/www/web2/access80.log Combined
LogLevel warn

CustomLog /var/log/apache2/web2.com_access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

================================================== ===================

NameVirtualHost *:2107
<VirtualHost *:2107>
ServerName web1.com
ServerAlias http://web1.com
DocumentRoot /var/www/web1
<Directory /var/www/web1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
ErrorLog /var/www/web1/error.log
CustomLog /var/www/web1/access.log Combined
</VirtualHost>

最佳答案

当您有多个虚拟主机时,其中一个是默认虚拟主机。它是包含 VirtualHost 定义的文件中按字母顺序排列的第一个文件。

当您删除虚拟主机时。如果您的 Hosts 文件或 DNS 记录中仍有条目,则当在 Apache 服务器上执行查询时,如果找不到正确的 VirtualHost(ServerName 或 ServerAlias),则会采用默认的 VirtualHost 来处理答案。

当您添加新的 VirtualHost 时,如果您在 ServerName 或 ServerAlias 中犯了错误,您还将拥有默认的 VH。

更新

现在问题已经完成,我可以看到您没有以正确的方式使用 ServerAlias。您的所有子域都应在 ServerAlias 指令中列出,不带 http://所以你应该:

ServerName web1.com
ServerAlias www.web1.com
ServerAlias games.web1.com

您也许可以尝试 *.web1.com。否则,当您使用未列出的名称时,将使用默认虚拟主机(此处虚拟主机 web2.com 是之前定义的,因此它是此端口上的默认虚拟主机)

关于apache - 虚拟主机子域指向错误的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8525377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com