2012-12-21 8 views
9

J'ai la ligne suivante dans mon fichier .htaccess pour sélectionner la version de PHP à utiliser:htaccess instruction if

AddType x-httpd-php53 .php 

Cela fonctionne très bien dans l'environnement direct, mais ne concerne pas l'environnement de test et brise la site.

Y a-t-il un moyen que je peux mettre dans une déclaration if ou quelque chose par IP du serveur ou de l'URL de site Web ou quelque chose de sorte qu'il ne prend effet dans l'environnement en direct?

+0

Quelle est la différence entre vos environnements de test et de test? Comment sont-ils configurés dans Apache? Et le plus important, comment ça se casse? Qu'y a-t-il dans le error_log? –

Répondre

16

Avec Apache 2.4, il est facile avec <If>/<Else> directives (sur %{HTTP_HOST}?).

<If "%{HTTP_HOST} == 'foo'"> 
    # configuration for foo 
</If> 
<Else> 
    # default configuration 
</Else> 

Pour Apache 2.2 et plus tôt, je voudrais ajouter un paramètre à la ligne de commande de démarrage d'Apache (option -D) dans l'un des deux environnements puis vérifier si elle est présente ou non par l'intermédiaire <IfDefine>.

Pour ce faire, sous Windows, avec Apache a commencé comme un service, modifier la clé de Registre HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Apache2.<VERSION>\ImagePath
en annexant -DFOO. Ensuite, vous pouvez écrire:

<IfDefine FOO> 
    # configuration for foo 
</IfDefine> 
<IfDefine !FOO> 
    # default configuration 
</IfDefine> 
2

Une autre alternative que vous pouvez faire est de changer httpd.conf dans l'environnement de test à utiliser ".htaccess test" au lieu de ".htaccess".

Cela se fait simplement en modifiant httpd.conf et en ajoutant la ligne suivante en dehors de tout bloc:

AccessFileName .htaccess-test 

REMARQUE: Vous pouvez ajouter AccessFileName dans un bloc VirtualHost < > si vous voulez appliquer à un VirtualHost spécifique. Cela signifie que l'environnement de test utilisera .htaccess-test pendant que l'environnement de production utilisera .htaccess. Par conséquent, vous avez la liberté de configurer chaque environnement séparément.

Créez ensuite un fichier nommé .htaccess-test à côté de .htaccess. Modifiez .htaccess-test avec votre configuration de test, puis redémarrez le serveur Web Apache dans le serveur de l'environnement de test.