我在使用 Apache 时遇到了一个问题,似乎无法解决。
我有两个域,它们指向虚拟主机文件中的两个不同 DocumentRoot。但是,我无法使其正常工作,我试图添加的站点根本不会从第二个域显示,而是会显示第一个站点(据我所知,这是默认设置,这意味着我的第二个虚拟主机出了问题)。
我设法通过将我的新网站放在第一个虚拟主机之前来解决这个问题。这意味着新网站可以显示,但会被frameset
apache 放入标签中,我无法控制标头。
在 Raspbian(Debian Linux)上运行 Apache 2.2.22
这是我现在的代码;
<VirtualHost *:80>
ServerName DIR0.com
ServerAlias www.DIR0.com
DocumentRoot /var/www/DIR0.com/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/DIR0.com/public_html>
Options Indexes 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 ${APACHE_LOG_DIR}/errors_DIR0.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access_DIR0.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName DIR1.com
ServerAlias www.DIR1.com
DocumentRoot /var/www/DIR1/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/DIR1.com/public_html>
Options Indexes 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 ${APACHE_LOG_DIR}/error_DIR1.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access_DIR1.log combined
</VirtualHost>
答案1
检查你是否已经设置
名称虚拟主机 *:80
在您的配置文件中。此指令允许使用 ServerName 作为 VirtualHost 的标识。如果缺少此指令,则使用 IP/端口作为 VirtualHost 的标识,这两个 VirtualHost 的标识相同。