我有两个域(siteA.com 和 SiteB.com)指向同一个网络服务器,我想为每个域显示不同的网页。
我目前已采取的步骤如下:
将默认站点(siteA)复制到 siteB
1)sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/siteB
2)sudo vim /etc/apache2/sites-available/siteB
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/siteB
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/siteB>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo Indexes
Order allow,deny
allow from all
</Directory>
</VirtualHost *:80>
然后我在 /var/www/siteB 下创建并在其中创建了一个示例 index.html。
但是当我加载我的域名时,siteB.com
我仍然被定向到/var/www/siteA
。这是为什么呢?
我是否也必须将其重命名/etc/apache2/sites-available/default
?/etc/apache2/sites-available/siteA
更新:
感谢下面的答案,看来我忘记了除了启用该网站之外还有另一个条目:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName siteB.com
ServerAlias www.siteB.com
</VirtualHost *:80>
为了包含所有子域名,请执行以下操作:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName siteB.com
ServerAlias *.siteB.com
</VirtualHost *:80>
siteA 也同样如此。
答案1
您是否使用命令启用了 siteBa2ensite 站点B然后重新启动网络服务器?
答案2
我已经为虚拟主机问题苦苦挣扎了好几天...可能相关:这是我所遇到的:
<VirtualHost *:80>
ServerName www.domain1.com
ServerAlias domain1.com
Include /etc/apache2/vhosts.d/domain1.include
<IfModule mpm_peruser_module>
ServerEnvironment apache apache
</IfModule>
</VirtualHost>
<VirtualHost domain2:80>
ServerAlias domain2.com
ServerName www.domain2.com
Include /etc/apache2/vhosts.d/domain2.include
<IfModule mpm_peruser_module>
ServerEnvironment apache apache
</IfModule>
</VirtualHost>
domain1 正在发送 domain2 的内容!
最后我改变了
<VirtualHost domain2:80>
到
<VirtualHost *:80>
并且它成功了。
基于“IP”的虚拟主机设置在域 2 上运行,该域具有与域 1 相同的 IP,并且从未查看过我的第一个 VirtualHost 条目
标签需要与 IP [和端口] 相同,才能查看 ServerName 和 ServerAlias
希望这对某人有帮助。