Zend framework ZF一个项目,具有两种不同的应用环境

Zend framework ZF一个项目,具有两种不同的应用环境,zend-framework,Zend Framework,我正在和ZF一起开发一个项目。该项目的一部分仍在开发中,另一部分已投入生产。控制器A在dev中,控制器B在prod中。我已经在htaccess文件中设置了我的应用程序_env。我怎样才能解决这个问题?关于Andrea,我看到您使用apache作为web服务器。请注意,我不能做任何测试来确认它的工作原理与键入的完全相同,但我希望您能理解其中的大意,并且E标志是您在这里的朋友 RewriteRule ^/your-dev-path/.*$ index.php [NC,E=APPLICATION_EN

我正在和ZF一起开发一个项目。该项目的一部分仍在开发中,另一部分已投入生产。控制器A在dev中,控制器B在prod中。我已经在htaccess文件中设置了我的应用程序_env。我怎样才能解决这个问题?关于Andrea,我看到您使用apache作为web服务器。请注意,我不能做任何测试来确认它的工作原理与键入的完全相同,但我希望您能理解其中的大意,并且E标志是您在这里的朋友

RewriteRule ^/your-dev-path/.*$ index.php [NC,E=APPLICATION_ENV:development,L]
RewriteRule ^.*$ index.php [NC,E=APPLICATION_ENV:production,L]
E标志允许将一个env链接到一个特定的规则,L标志实质上使其成为最后一个规则。因此,上一行匹配后,最后一行(默认规则)不应应用


这里是docu的链接

别管生产拷贝,把所有内容的拷贝放在开发框中。不幸的是,我只有一台用于开发和生产的服务器。如果您必须在远程服务器(而不是本地主机环境)上进行开发,请查看您是否无法创建第二台主机(vhost)来分隔您的活动(生产)从您的开发环境中删除环境。你必须找到一些方法来分离关注点,服务器要么是生产型的,要么是开发型的,不可能两者兼而有之。我用这个检查器检查了一下,看起来还可以,但在我的应用程序中没有。你所说的“E旗是你的朋友”到底是什么意思?读取了Andrea.htaccess:我在.htaccess文件中放入了一些垃圾,得到了内部服务器错误。但是变量没有设置:在index.php中测试它时。。。奇怪…@cwhisperer E flag是您的朋友,它只在应用重写规则时设置环境变量。如果使用此方法,请确保不要像通常那样使用
SetEnv
设置env。除此之外,它应该是有效的。我不使用这个确切的场景,但以这种方式设置另一个环境,它就可以工作了。