Apache2文档建议mod_rewrite作为指定将哪个目录发送给定主机请求的最后手段。他们说使用mod_vhosts_alias。我确定了它的工作,没有问题。但是,我有一个具体的案例,需要一些mod_rewriting。Apache2混合mod_vhosts_alias和mod_rewrite
我有一个像mydomain.com这样的域名和大量的子名称,如sub.mydomain.com和sub2.mydomain.com。这些子域都映射到相应的目录。但是子域也会有完整的顶层域映射到各自的目录。例如:
sub.mydomain.com将映射到同一目录awesomeproducts.com sub2.mydomain.com将映射到同一目录widgets.com
会是什么,以确保最好的办法访问每个站点的这两种方法都能正常工作吗?
由于文档只说mod_rewrite不如mod_vhosts_alias“优雅”,我不知道我是否应该完全自己使用mod_rewrite来处理我的情况,或者我应该试图以某种方式混合这两种方法。
混合他们的方式去或将会产生问题?
我发现VirtualDocumentRoot应该为PHP正确设置DOCUMENT_ROOT变量。我不知道为什么当我测试时我没有得到预期的行为。也许我做错了什么,但阿帕奇团队声称这个问题在2012年2月得到修复。我将不得不进一步测试。目前,任何阅读此文的人都应该警告注意可能存在的问题。 – James
找到了为什么DOCUMENT_ROOT没有正确设置。目前发行版稳定的apache2是v2.2.x. Debian 6和大多数发行版目前没有v2.4.x作为稳定的发行版。通过VirtualDocumentRoot的DOCUMENT_ROOT已在v2.4.x中修复,所以我的版本太旧了。我不打算从源代码构建2.4.x,因此我现在不会使用mod_vhost_alias。 – James