Dies ist eine Apache-Frage, die Sie wahrscheinlich schon einmal kennengelernt haben. Ich möchte ein Quellpaket haben, das ich auf meiner Arbeitsstation, meinem Staging-Server und meinem Produktionsserver bereitstellen kann, aber dafür unterschiedliche .htaccess-Einstellungen basierend auf der URL laden muss.Wie kann ich einen bedingten .htaccess Block haben?
Bitte beachte, dass ich eine Flickschusterei mit einem IfModule-Call, aber das wird nicht mit unserem neuen Produktionsserver arbeiten, weil sie alle die gleichen Module wie mein Staging-Server teilen.
Hinweis muss ich SetEnv mit diesen Neufassungen bündeln. Derzeit, wenn Sie RewriteCond verwenden, bindet es nur an die folgende RewriteRule, aber nicht an die darunter liegende SetEnv.
Es sollte beachtet werden, dass die php_value-Direktive in Apache nicht in den ersten Beispiel-Umgebungsvariablen aufgerufen werden kann. Im zweiten Beispiel ist dies die beste Wahl, da Sie Ihren Server buchstäblich definieren können. Dies funktioniert jedoch nur, wenn Sie die Umgebung steuern. Wenn Sie sich auf einem freigegebenen Host befinden, haben Sie keine Möglichkeit, die Übergabe eines Parameters an den httpd-Prozess zu steuern. Daher suchen Sie mit nach einer Umkehrung. –
Ich habe festgestellt, dass ich IfDefine verwenden kann, da mein Prod-Server zu 100% von mir kontrolliert wird und ich mich mit dem Parameter/etc/sysconfig/httpd OPTION anlegen und OPTIONS = "- D prod" machen kann. Auf dem Staging-Server, der freigegeben ist, musste ich IfDefine! Prod verwenden und dann ein IfModule-expires_module darunter stapeln. Auf meiner Workstation musste ich IfDefine! Prod verwenden, gefolgt von IfModule! Expires_module. Dies gab mir eine .htaccess-Datei, die in Dev, Staging/Test und Produktion gearbeitet hat. –
Etwas verwirrend, ließ mich denken, dass einfache Umgebungsvariablen auf ifdefine verwendet werden könnten – Dan