Apache 多个 DocumentRoot

Posted

技术标签:

【中文标题】Apache 多个 DocumentRoot【英文标题】:Apache multiple DocumentRoot 【发布时间】:2011-05-31 03:05:25 【问题描述】:

如何在 apache 中进行以下设置?

http://server/ABC/* 应由/var/www/ABC/* 提供服务

http://server/PQR/* 应由/var/www/PQR/* 提供服务

所有其他请求都应由/var/www/Others/index.php(单个文件)处理。

谢谢,

日本

【问题讨论】:

对于您问题的第一部分:Alias(Alias /ABC /var/www/ABC 等)将 DocumentRoot 保留为 /var/www/Others/ 【参考方案1】:

使用别名:

Alias /ABC/ /var/www/ABC/
Alias /PQR/ /var/www/PQR/

让文档根目录指向 /var/www/Others/index.php。它可以解决问题。 :)

【讨论】:

这可以用来将/指向另一个目录吗?例如Alias / /var/www/wordpress/?【参考方案2】:

您可以使用 mod_alias 来做到这一点,它是 apache 发行版的一部分。

http://httpd.apache.org/docs/current/mod/mod_alias.html

使用 mod_rewrite 可以使用单个文件来提供所有其他服务。这有很多功能,根据您的需要,您可能需要对其进行调整.. 但是这样的东西应该可以工作:

RewriteEngine on
RewriteRule ^(.*)$ /index.php?path=$1 [L]

您可以将它放在文档根目录下的 .htaccess 文件中。

【讨论】:

将文档根目录指向 index.php,但在重新启动 apache 时会发出警告,但 有效。我正在考虑是否使用 mod_rewrite 或 Tabers 建议。

以上是关于Apache 多个 DocumentRoot的主要内容,如果未能解决你的问题,请参考以下文章

Apache 配置多个HTTPS站点

Apache多个端口绑定

apache 一个ip怎么绑定多个域名不同目录

多个 SSL 证书破坏了 Apache

MAC为Apache2服务器配置多个虚拟主机

Apache 多个 DocumentRoot