.htaccess in mehreren Umgebungen
Ich weiß, dass ähnliche Fragen gestellt wurden, aber ich habe keine konkreten Antworten für meine Situation gefunden.
Ich habe eine ExpressionEngine-Site, die in mehreren Umgebungen (lokal, Entwickler, Produktion) ausgeführt wird, und für jede dieser Umgebungen sind unterschiedliche .htaccess-Regeln erforderlich:
Alle Umgebungen
Entfernen Sie index.phpLegen Sie eine 404-Datei festSetze 301 RedirectsEntwicklung
Passwortschutz mit .htpasswdHTTPS-Protokoll erzwingenVerhindern Sie die Indizierung von Suchmaschinen mitX-Robots-TagProduktion
HTTPS-Protokoll erzwingenLeiten Sie Nicht-WWW-Subdomains zu WWW umLokal
Keine eindeutigen Regeln.Ich habe viele Beispiele gesehen, wie Sie bestimmte Umgebungen pro Modul festlegen können. MögenRewriteCond %{REQUEST_HOST} ^dev.myurl.com
für das Modul mod_rewrite undTricks wie diese für .htpasswd Anforderungen.
Aber ich würde es wirklich vorziehen, globale Umgebungsvariablen festzulegen und diese Variablen dann in der .htaccess-Datei pro Umgebung erneut zu verwenden. Um Pseudo-Javascript als Beispiel zu verwenden, so etwas wie:
var local = 'mysite.local';
var development = 'dev.mysite.com';
var production = 'www.mysite.com';
// Global .htaccess rules
if(environment == local){
// Local environment .htaccess rules
}
if(environment == development){
// Development environment .htaccess rules
}
if(environment == production){
//Production envirotnment .htaccess rules
}
Auf diese Weise werden alle umgebungsspezifischen Regeln zu einer wirklich sauberen Datei zusammengefasst, und nur eine Variable muss geändert werden, wenn eine Umgebung geändert wird.
Ich habe einige Hinweise zum Ändern von Einstellungen in den Konfigurationsdateien von Apache gesehen, aber offensichtlich ist dies keine praktikable Option, wenn ich mit Hosts von Drittanbietern zu tun habe.
Ist das nun ein Wunschdenken, oder kann es getan werden?