2010-02-15 7 views
8

Pour une application basée sur Zend Framework, j'utilise les touches SetEnv en .htaccess. J'utilise ce sur le test, la mise en scène et les serveurs de production comme ceci:Apache SetEnv ajoute REDIRECT_. Ce qui donne?

SetEnv APPLICATION_ENVIRONMENT production 

Sur le serveur de mise en scène, je ne pouvais pas lire env var en PHP. Cependant, quand je l'ai fait un var_dump($_ENV) en php je suis la valeur mais la clé a été préfixée avec REDIRECT_ devenir

REDIRECT_APPLICATION_ENVIRONMENT 

Quelqu'un peut-il expliquer pourquoi cela se passe, et comment je peux empêcher cela?

Répondre

7

Je suppose que vous avez des règles mod_rewrite dans votre .htaccess aussi bien pour Zend? Je crois qu'il peut être mod_rewrite préfixant que quand il fait une redirection afin que la valeur ne soit pas remplacée par de nouveaux paramètres avec la nouvelle URL.

+0

Vous avez deviné correct en effet. Vous avez peut-être raison à propos de mod_rewrite, mais je ne crois pas que les autres serveurs montrent aussi ce comportement, et ils ont exactement la même configuration de mod_rewrite. Je vais devoir vérifier. Merci pour l'instant. –

+0

@fireeyedboy J'ai été surpris de trouver très peu de choses à propos de ce problème, à part les commentaires des utilisateurs dans les messages du forum et aucune information fiable sur la source. J'ai vu un ou deux articles sur le fait qu'Apache est spécifique à la version, est-ce que Apache est une version différente de celle de votre dev et production? Est-ce que votre dev et la production sont les mêmes et ne le font pas sur l'un ou l'autre? – nortron

+0

@fireeyedboy pouvez-vous élaborer - avez-vous fait quelque chose pour résoudre ce problème? –

2

J'ai eu le même problème et c'était à cause de l'exécution de PHP comme CGI dans mon Apache. Après l'activation de mod_php, j'ai pu accéder à ma variable sans ce préfixe.

Questions connexes