2012-05-04 16 views
0

私はZFでプロジェクトを開発しています。このプロジェクトの一部はまだ開発中であり、もう1つはすでに生産中です。コントローラAがdevで、コントローラBがprodである。 htaccessファイルにapplication_envを設定しました。どうすればこの問題を解決できますか?よろしくお願いします。AndreaZF 2つの異なるapplication_envを持つ1つのプロジェクト

+1

のリンクだけでは生産のコピーを残して、開発ボックス上のすべてのコピーを入れます。 – RockyFord

+0

残念ながら私はdevとprodのために1つのサーバしか持っていません... – cwhisperer

+1

リモートサーバ(localhost環境ではなく)で開発する必要がある場合は、別のホスト(vhost)を作成してあなたの開発環境から生きている(プロダクション)環境。あなたは懸念を分けるための何らかの方法を見つけなければなりません。サーバーは生産または開発のどちらかになります。 – RockyFord

答えて

1

WebサーバーとしてApacheを使用しています。私はこれが正解と同じように動作することを確認するためのテストはできませんが、ドリフトを得て、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フラグは本質的に最後のルールにします。したがって、最後の行(あなたのデフォルトルール)は、前の行がマッチすると適用されません。ここで

はドキュメンタリーhttp://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_e

+0

こんにちは、私はこのオプションを試みましたが、うまくいかないようです。私はこのチェッカーhttp://martinmelin.se/rewrite-rule-tester/に対してそれをチェックして、それは私のアプリケーションではないようですが、OKです。あなたはまさにそれを意味しますか:Eフラグはあなたの友人ですか?よろしくお願いします。Andrea – cwhisperer

+0

.htaccessが読み込まれました:.htaccessファイルにいくつかのガベージを入れて、内部サーバーエラーが発生しました。しかし、変数は設定されていません:index.php ... strangeでテストするとき... – cwhisperer

+0

@cwhisperer Eフラグは、RewriteRuleが適用される場合にのみ環境変数を設定するためのフレンドです。このメソッドを使用する場合は、通常と同じように 'SetEnv'でenvを設定しないようにしてください。それ以外はうまくいくはずです。私はこの厳密なシナリオを使用せず、このように別のenvを設定しています。 –

関連する問題