使用Apache VirtualHosts从同一个全局IP地址提供多个子域

时间:2014-11-20 06:31:37

标签: apache apache2 subdomain virtualhost

我有一个域名myexample.com,我想要使用相同的IP地址,有多个子域名。我想使用Apache VirtualHosts而不向客户端显示重定向正在发生。以下是我想要的规则: www.myexample.com gets content from the /var/www folder www1.myexample.com gets content from the /var/www1 folder www2.myexample.com gets content from the /var/www2 folder 这里的问题是所有三个必须在端口80上运行在同一台计算机上,我不想使用301重定向,因为客户端可以看到发生了什么。如何配置VirtualHosts来执行此操作?我无法弄清楚如何使用mod_rewrite。我用Apache2运行Ubuntu 14.04。

谢谢!

1 个答案:

答案 0 :(得分:1)

要添加虚拟主机,建议将每个虚拟主机写入单独的文件中,或者将特定用户的所有虚拟主机写入一个文件中。这样可以提高服务器的可管理性,并且当您想要更改1个域的特定设置时,可以轻松找到要编辑的文件。

apache2.conf中修改/etc/apache2文件时,文件底部应该有一行include sites-enabled/。如果没有添加它。

然后在sites-enabled文件夹中为您的域或您的用户创建一个新文件。为了便于编辑,我会nano <filename>.conf进行编辑并设置文件名和扩展名。{/ p>

将以下code插入文件。

<VirtualHost 0.0.0.0:80>
    ServerName www1.example.com
    ServerAdmin admin@www1.example.com
    DocumentRoot /var/www1
</VirtualHost>

要获取同一IP上的所有内容,您可以输入*:80代替0.0.0.0来监听系统上的所有IP,或者输入服务器具有的特定公共IP地址以增强安全性

此外,如果要设置特定的PHP值,或者如果要将日志文件移动到其他文件,则可能需要其他指令:

CustomLog custompath/domainname.log
ErrorLog custompath/domainname.error.log

希望能解决您的问题