2013-03-23 60 views
0

首先,我已经完成搜索并找到答案,但我仍然不明白以下内容。Apache2网站 - 可用配置

我有两个.co.uk域,在我的Debian框中的/ home/site1/public_html/&/home/site2/public_html/- (例如,用户已设置等)上设置了两个目录。

所以我点了我的领域我的箱子IP地址,有两个DNS条目(两者相同):

DNS Entry  Type  IP Address 
@    A   myip 
www   A   myip 

现在的网站可用的配置我创建两个新的“文件”,都是建立相同,但在路径和信息被改变为相应的结构域:

<VirtualHost *:80> 
    ServerAdmin my-email-address 
    ServerName www.site1.co.uk 
    ServerAlias site1.co.uk 
    DocumentRoot /home/site1/public_html/ 
</VirtualHost> 

&

<VirtualHost *:80> 
    ServerAdmin my-email-address 
    ServerName www.site2.co.uk 
    ServerAlias site2.co.uk 
    DocumentRoot /home/site2/public_html/ 
</VirtualHost> 

我a2ensite,重新加载apache。

现在,如果我去www.site1.co.uk或site1.co.uk它工作正常。 如果我到www.site2.co.uk它可以工作,但site2.co.uk不起作用(页面未找到),而且我几乎不知道为什么。

有人可以向我解释这个吗?是否应该添加其他DNS条目,不同的配置等?

问候,

+0

'ping site2.co.uk'与'ping www.site2.co.uk'具有相同的IP地址? – mkjasinski 2013-03-23 13:05:46

+0

未找到没有“www。”的主机这很奇怪,它适用于一个站点,但不适用于其他站点:s – Alias 2013-03-23 13:10:01

+0

检查DNS,该域的记录不存在。 – mkjasinski 2013-03-23 13:13:03

回答

0

按我的经验,你需要重定向到site2.co.uk www.site2.co.uk。

这里是你如何在Apache2的

RewriteCond %{HTTP_HOST} !^www\.site2\.co.uk [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^/?(.*)   http://www.site2.co.uk/$1 [L,R,NE] 

做的更多信息请参见https://httpd.apache.org/docs/2.4/rewrite/remapping.html - 正规主机名。

+0

使用mod_rewrite必须是对服务器的请求,在这种情况下域不匹配IP地址。 – mkjasinski 2013-03-23 13:19:30