如何将多个URL指向正确的目录?

时间:2011-02-15 20:39:28

标签: apache dns centos

我有一台运行CentOS 5的VPS。我想在同一个VPS上指向多个域(指向同一个IP),但为每个域提供不同的网站。

所以,我想要的设置是这样的:

site1.com ----> 127.0.0.1 ----> /var/www/html/site1.com/
site2.com ----> 127.0.0.1 ----> /var/www/html/site2.com/

我已经尝试通过CentOS GUI为Apache设置虚拟主机,但它们似乎没有用。只有添加的第一个虚拟主机才能正常工作(例如,如果我先添加site1.com,则两个域都会直接添加到该网站。如果我先添加site2.com,则两个域都会直接指向该网站。)

我可能做错了什么?是否有一个有效的分步教程让新手入门?


更新

请记住,我几乎没有使用CentOS和Linux的经验......但我正在学习。

对于那些要求查看我正在使用的指令的人,这是我使用内置Apache GUI时CentOS添加到/etc/httpd/conf/httpd.conf底部的内容:

<VirtualHost skylarkapp.com:80>
    DocumentRoot /var/www/html/skylarkapp.com
    <Directory "/var/www/html/skylarkapp.com">
        allow from all
        Options +Indexes
    </Directory>
    ServerName skylarkapp.com
</VirtualHost>
<VirtualHost eamann.com:80>
    DocumentRoot /var/www/html/eamann
    <Directory "/var/www/html/eamann">
        allow from all
        Options +Indexes
    </Directory>
    ServerName eamann.com
</VirtualHost>

目前,此系统上skylarkapp.comeamann.com的所有流量都指向/var/www/html/skylarkapp.com的内容。

此外,我正在使用我的Windows hosts文件手动将eamann.com指向此服务器(204.92.23.6),因为我正在迁移实时网站。我想在实际将东西从一个盒子移动到另一个盒子之前让服务器上的东西工作。

2 个答案:

答案 0 :(得分:2)

这一行:

<VirtualHost eamann.com:80>

将无效,因为eamann.com无法解析您的CentOS服务器的IP地址(只有您的Windows机器将eamann.com解析为204.92.23.6)。尝试通过替换为:

在任何IP上列出apache
<VirtualHost *:80>

你可能也想要:

ServerAlias www.eamann.com

允许访问者访问www.eamann.com以查看该网站。进行这些更改后重新启动apache:

service httpd restart

答案 1 :(得分:2)

必须使用NameVirtualHost *:80显式启用基于名称的虚拟主机。见http://httpd.apache.org/docs/2.2/vhosts/name-based.html