我有一个域名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。
谢谢!
答案 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
希望能解决您的问题