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

Php 子文件夹中zf2应用程序的重写规则,php,.htaccess,zend-framework2,Php,.htaccess,Zend Framework2,我有一个包含多个应用程序的域,URL为: 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/ 我

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

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/I中,我编写了一个htaccess文件以重定向到公用文件夹:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/app3/public
RewriteRule (.*) /app3/public/$1 [L]
但我的app3(url www.domain.com/app3/)总是显示404错误,表示路由不存在。“我的布局”中的URL帮助程序生成喜欢的URL,而不是


因此,我想有一个路由问题:如何说这个zf2应用程序位于子文件夹/app3/?记住,我不想使用subdmains。。。在.htaccess或zf2应用程序中,我可以做些什么吗?

我没有找到任何简单的解决方案,可以在不使用子域或入侵路由系统的情况下在子文件夹中定位zf2应用程序

最简单的方法是将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/