2012-12-21 4 views
9

ich die folgende Zeile in meiner .htaccess Datei auswählen, welche Version von PHP zu verwenden:.htaccess if-Anweisung

AddType x-httpd-php53 .php 

Dies funktioniert gut in der Live-Umgebung aber gilt nicht für die Umwelt Test und bricht die Seite? ˅.

Gibt es eine Möglichkeit, ich kann es in eine if-Anweisung oder etwas per IP des Servers oder URL der Website oder etwas, so dass es nur in der Live-Umgebung kommt in Kraft setzen?

+0

Was ist der Unterschied zwischen Ihren Live- und Testumgebungen? Wie sind sie in Apache konfiguriert? Und am wichtigsten, wie bricht es? Was ist in der Fehlerliste? –

Antwort

16

Mit Apache 2.4, ist es einfach, mit <If>/<Else> Richtlinien (auf %{HTTP_HOST}?).

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

Für Apache 2.2 und früher, würde ich einen Parameter in die Startbefehlszeile von Apache (-D Option) in einen der beiden Umgebungen fügen Sie dann testen, ob es vorhanden ist oder nicht über <IfDefine> ist.

dies unter Windows zu tun, mit Apache als Dienst gestartet, ändert Registrierungsschlüssel HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Apache2.<VERSION>\ImagePath
von -DFOO anhängen. Dann können Sie schreiben:

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

Eine weitere Alternative, die Sie tun können, ist httpd.conf in der Testumgebung zu ändern, zu verwenden ".htaccess-Test" anstelle von ".htaccess".

AccessFileName .htaccess-test 

HINWEIS:

Dies wird einfach durch Modifizieren httpd.conf und die folgende Zeile außerhalb jeder Block getan Sie können Access in einem <Virtual> Block hinzufügen, wenn Sie es auf eine anwenden möchten spezifischer VirtualHost.

Dies bedeutet, dass die Testumgebung .htaccess-test verwendet, während die Produktionsumgebung .htaccess verwendet. Daher haben Sie die Freiheit, jede Umgebung separat zu konfigurieren.

Dann erstellen Sie eine Datei namens .htaccess-test neben .htaccess. Ändern Sie den .htaccess-Test mit Ihrer Testkonfiguration und starten Sie anschließend den Apache Web Server im Testumgebungsserver neu.