2010-02-15 9 views
8

Für eine Anwendung basierend auf Zend Framework verwende ich apaches SetEnv in .htaccess. Ich benutze dies auf Test, Staging und Produktions-Server wie folgt:Apache SetEnv Prepends REDIRECT_. Was gibt?

SetEnv APPLICATION_ENVIRONMENT production 

Auf dem Testserver ich nicht diesen env var in PHP lesen konnte. Allerdings, wenn ich ein var_dump($_ENV) in php tat bekam ich den Wert, aber der Schlüssel wurde voran mit REDIRECT_

immer
REDIRECT_APPLICATION_ENVIRONMENT 

Kann jemand erklären, warum dies geschieht und wie ich das verhindern kann?

Antwort

7

Ich vermute, Sie haben mod_rewrite Regeln in Ihrem .htaccess sowie für Zend? Ich glaube, es könnte mod_rewrite sein, wenn es eine Weiterleitung macht, so dass der Wert nicht durch irgendwelche neuen Einstellungen mit der neuen URL überschrieben wird.

+0

Sie richtig geraten tatsächlich. Sie könnten mit mod_rewrite Recht haben, aber ich glaube nicht, dass die anderen Server auch dieses Verhalten zeigen, und sie haben das exakt gleiche mod_rewrite-Setup. Ich muss es überprüfen. Danke bis jetzt. –

+0

@fireeyedboy Ich war wirklich überrascht, sehr wenig über dieses Problem bei allen anderen als Benutzerkommentare in Forumsbeiträgen und keine tatsächlichen zuverlässigen Quelleninformationen zu finden. Ich habe ein oder zwei Beiträge darüber gelesen, dass es Apache-spezifisch ist. Ist der Apache Ihrer Staging-Maschine eine andere Version als Ihr Entwickler und Ihre Produktion? Sind dein Entwickler und deine Produktion das gleiche und es tut das nicht? – nortron

+0

@fireeyedboy kannst du etwas ausarbeiten - hast du etwas getan, um das zu lösen? –

2

Ich hatte das gleiche Problem und es war wegen der Ausführung von PHP als CGI in meinem Apache.

Nachdem ich mod_php aktiviert hatte, konnte ich auf meine Variable ohne dieses Präfix zugreifen.