Apache Virtualhost 奇怪的故障

Apache Virtualhost 奇怪的故障

我在 Apache 虚拟主机配置方面遇到了一个非常奇怪的问题。我有 2 个域名 (domain1.com domain2.com)。问题是当有人访问 domain2.com 时,偶尔他们会突然看到 domain1.com 上的 index.html 页面,但没有所有 css(只有 html 链接)。这个问题让我抓狂!任何帮助都将不胜感激。

这是我的 domain1 的虚拟主机

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www
ServerName www.domain1.com
ServerAlias domain1.com *.domain1.com
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options  FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

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

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

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

这是 domain2.com 的配置文件,除了以下内容外,其他都一样

    ServerAdmin [email protected]
DocumentRoot /var/www/domain2
ServerName www.domain2.com
ServerAlias domain2.com *.domain2.com
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/domain2r>
    Options  FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

答案1

例如,“偶尔”是否可以在某些链接上重现?它可能是一个指向您服务器上某个页面的链接(有拼写错误),该页面并未到达 domain2.com,而是指向默认虚拟服务器,该服务器可能默认也位于 /var/www 中。

要调试这个问题,您应该让默认虚拟服务器从不同于 domain1.com 的目录提供服务(或者创建一个默认服务器,否则我猜第一个定义的服务器可能是默认的)

顺便提一下 - 仅出于风格考虑,我会从不是彼此子目录的目录中提供 domain1.com 和 domain2.com 服务。

请注意,您还可以嵌入<base href="http://domain1.com">到文档的头部部分,并在协议级别搜索日期,而这是由 HTML 引起的问题。

相关内容