2012-01-06 81 views
0

我有一个轻微的apache问题。这可能是非常小的事情,我只是在看它。这是场景。我有两个网站的Ubuntu 10.04服务器设置。在此之前,我有一个站点,并通过IP地址访问它。我刚刚添加了第二个网站,这个网站带有一个域名,并且我在网站的可用目录中创建了一个新文件。并链接到启用网站的目录。Apache2:弄错根目录

的第一个网站(我通过IP访问的一个)的配置看起来是这样的:

#Default 
<VirtualHost *:80> 
    DocumentRoot /var/www 
......etc 

那么其他的配置是这样的:

#Secondary 
<VirtualHost TheDomainName.com:80> 
    DocumentRoot /var/www/thedomainname 
.......etc 

如果你们需要我发布完整的配置文件,我会。为什么IP地址的请求会通过DomainName配置?是否因为它们是相同的IP地址?我如何区分两者?

如果我尝试在第一个“默认”配置而不是“*”上设置IP地址,该网站只能正常工作,我永远无法访问另一个“辅助”网站。

谢谢。

回答

0

对于站点1:

<VirtualHost *:80> 
    ServerName oink.domain.com 
    DocumentRoot /var/www 
    ... 

佛[R站点2:除非你用name based virtual hosts

<VirtualHost *:80> 
    ServerName blah.domain.com 
    DocumentRoot /var/www/thedomainname 
    ... 
+0

诀窍是ServerName(和ServerAlias,如果你想为同一个虚拟主机指定更多的别名)指令。定义的第一个虚拟主机将成为所有其他站点/主机名/等的全部。指向它。 – 2012-01-06 20:58:57

+0

好的,谢谢,我在第二个指令中使用域名。我现在正在使用*来设置ServerName/ServerAlias。谢谢您的帮助! – 2012-01-06 21:08:36

1

您是否在虚拟主机指令中使用ServerName和ServerAlias?

<VirtualHost *:80> 
    ServerName www.domain.com 
    ServerAlias domain.com domain.net www.domain.net 

其他的东西,你可能这样做,但更改

的httpd重新启动后,重新启动Apache的

(或类似的东西.. /etc/init.d/apache2重启或lighttpd的,如果你正在使用)

1

不同的网站不能共享IP和端口组合。从本手册的例子是这样的:

NameVirtualHost *:80 

<VirtualHost *:80> 
ServerName www.domain.tld 
ServerAlias domain.tld *.domain.tld 
DocumentRoot /www/domain 
</VirtualHost> 

<VirtualHost *:80> 
ServerName www.otherdomain.tld 
DocumentRoot /www/otherdomain 
</VirtualHost> 

当您使用此功能,未知的域名映射到您的配置中找到的第一个<VirtualHost>