【发布时间】:2011-02-04 06:24:49
【问题描述】:
几个小时前我几乎可以正常工作,但我似乎无法让所有 mod-rewrite 的东西都适合 Zend。
鉴于此目录结构:
/home/branches/branch1/public/index.php
/home/branches/branch2/public/index.php
/home/branches/branch3/public/index.php
我怎样才能像这样访问这些:
branch1.branch.example.com
branch2.branch.example.com
branch3.branch.example.com
不必在每个分支中硬编码?
这是我的起点 (source),(不知何故,我现在什至无法让它工作,但我发誓它今天早上工作,哈!)。
ServerAlias *.branch.example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} .* [NC]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.branch\.example\.com
RewriteCond /home/branches/%1/public
RewriteRule ^(.*) /%1/$1 [L]
(旁注:我实际上正在使用旧的 alpha 版本的 ZF 处理一个庞大的代码库,它使用 /www/errors.php 作为引导程序而不是 /public/index.php,(甚至可能需要一些不同的重写规则比当前版本)但我修改了上面的代码以适应当前的 ZF 设置)
【问题讨论】:
-
这里的解决方案有是mod_rewrite吗?您有权访问 Apache 配置吗?可以用Apache Virtual Hosts吗?
-
@Leigh:Virtual Hosts 听起来不错,但您知道它是否可以处理通配符分支名称吗? (我不是指路由方面。)
-
@Kevin 啊,现在我想起来了,我想我们正在谈论基于任何内容的即时子域创建(即可以在没有的情况下创建 branch4 Apache 重启),而不是静态托管的子域。在这种情况下,重写似乎是更好的选择。
-
是的!我想分支树干,然后 BAM!无需额外配置!开始写代码! (此外,我可以访问所有内容。这是一个专用的现场主机,没有任何限制,资源丰富)
-
好的,我们或许能帮上忙。你试过我给出的答案吗?如果您发现问题,请在此处发表评论。
标签: php apache zend-framework mod-rewrite