在子文件夹中重写zf2应用程序的规则

时间:2014-04-03 23:33:39

标签: php .htaccess zend-framework2

我有一个包含多个应用程序的域名,URLS为:

www.domain.com/
www.domain.com/app1/
www.domain.com/app2/
www.domain.com/app3/
www.domain.com/app4/

app3是一个zf2应用程序,所以我的根树是这样的:

/
/app1/
/app2/
/app3/
/app3/config/
/app3/data/
/app3/module/
/app3/public/
/app3/vendor/
/app4/

我不想为zf2应用使用子域名。

但是app3根URL必须重定向到公共子文件夹,因为它是一个zf2应用程序。所以在/ app3 /我写了一个htaccess文件来重定向到公共文件夹:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/app3/public
RewriteRule (.*) /app3/public/$1 [L]

但我的app3(网址www.domain.com/app3/)始终显示404错误,说路径不存在。我的布局中的网址助手会让网址更像http://www.domain.com/myroute而不是http://www.domain.com/app3/myroute

所以我猜有一个路由问题:如何说这个zf2应用程序它位于子文件夹/ app3 /? 请记住,我不想使用子域名... 我可以在.htaccess或zf2应用程序中执行某些操作吗?

1 个答案:

答案 0 :(得分:0)

我没有找到任何简单的解决方案来在子文件夹中找到ZF2应用程序而不使用子域或黑客攻击路径系统。

最简单的方法是以root用户身份运行ZF2

如果其他应用程序未设计为在子文件夹,用户子域中运行。有关信息,这就是我所做的:

www.domain.com/        => is now a part of /app4/
www.domain.com/app1/   => no change,       /app1/
www.domain.com/app2/   => no change,       /app2/
www.domain.com/app3/   => ZF2 app is now   /      => merged with my root pages. I added an app3 route to keep the old urls compatibles with the new app...
www.domain.com/app4/   => no change,       /app4/