![在一个 apache2 服务器上的文件夹中托管多个站点](https://linux22.com/image/531842/%E5%9C%A8%E4%B8%80%E4%B8%AA%20apache2%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E6%89%98%E7%AE%A1%E5%A4%9A%E4%B8%AA%E7%AB%99%E7%82%B9.png)
我正在尝试设置 apache2 来托管多个站点,但使用相同的根 URL,并且仅在子文件夹中不同,即
hxxp://example.com/site1/
hxxp://example.com/site2/
这应该很容易,但我在谷歌搜索了几个小时后,仍然没有找到正确的方法。我可以通过浏览找到 site1http://example.com但另一个则不然。
我正在使用 kubuntu 服务器 10.04,并在 /etc/apache2/sites-available/ 中创建了 conf 文件,并为每个站点运行 a2ensite
这是与 .htaccess 相关的问题吗,还是我必须摆弄 apache2 conf 文件?
答案1
“问题”在于您将 VirtualHosts 用于其真正设计用途之外的用途。 http://httpd.apache.org/docs/2.2/en/vhosts/ “站点”由自己的域或 IP 定义。因此,如果您为子文件夹(如您)进行 VirtualHost 配置,则会发生冲突(不知道您的决定因素是什么?我的意思是 ServerName/ServerAlias)。我不知道具体发生了什么,但您在 VirtualHosts 中配置的内容将无法正常工作(至少不是全部)。那么解决方案是什么:
- 您可以使用子域名,例如 site1.example.com 和 site2.example.com(如果您想使用 VirtualHosts)
- 您可以使用 1 个 VirtualHost(例如 example.com)和目录作为您的子站点(example.com/site1 和 example.com/site2):http://httpd.apache.org/docs/2.0/en/mod/core.html#directory但是这里没有与 VirtualHost 配置中相同的选项。
- 可能还有其他解决方案,但我的解决方案应该可以解决问题;)
希望这可以帮助。
顺便提一句。
kubuntu 服务器 10.04
为了提高安全性和性能,您不应该在生产系统上使用 X-Server。
答案2
经过反复尝试,我成功地完成了我想要做的事情,通过改变线路
文件根目录 /var/www/site1
到
文件根目录 /var/www
在两个站点配置文件中(在 /etc/apache2/sites-available 中)
但我必须承认,我不知道这是否会对我的整体设置/安全/性能产生其他影响。
有什么线索吗?!