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的主要内容,如果未能解决你的问题,请参考以下文章