如何在 Apache 上配置多个目录?

如何在 Apache 上配置多个目录?

我正在使用 apache2 在 ubuntu 上工作。

要求

  1. 根目录应由特定文件夹提供。当有人访问http://mysite.com/foo1他应该达到/var/www/tld/foo1
  2. 其他目录作为子站点:当有人访问http://mysite.com/subsite/foo2他应该达到/var/www/subsite/foo2
  3. 我希望能够为某些操作配置特定的快捷方式。例如,通过添加自定义规则,我希望http://mysite.com/foo3到达http://mysite.com/subsite/foo3(与#1不同,这不是全局的,而只是通过添加特定的路线)。

实现此目的的最佳方法是什么?我应该在每个“子站点”下设置不同的文件吗apache/site-enabled?还是应该使用<Directory>?如何配置mod_rewrite才能实现此目的?

答案1

虚拟主机只有一个文档根目录;apache 没有“子站点”的概念。

虚拟主机文档

您可以通过添加指向文件系统位置的别名来对此做出例外处理外部文档根目录,但请注意定义这些内容的顺序:第一个匹配获胜,因此您应该从最具体到最不具体的顺序排列它们。

别名文档

最后一个问题更多的是网站布局不好的情况,但你可以对其发出重定向:

Redirect /foo3/ /subsite/foo3/

apache 中没有名为 mod_routing 的模块。

答案2

如果所有 URL 都托管在同一个域/IP 地址下,则可以使用 mod_rewrite 根据您指定的规则重写 URL。

相关内容