.htaccess w wielu środowiskach
Wiem, że podobne pytania zostały zadane wcześniej, ale nie znalazłem żadnych konkretnych odpowiedzi na moją sytuację.
Mam witrynę ExpressionEngine działającą w wielu środowiskach (lokalne, dev, produkcyjne), a każde z tych środowisk wymaga innych reguł .htaccess:
Wszystkie środowiska
Usuń index.phpUstaw plik 404Ustaw przekierowania 301Rozwój
Ochrona hasłem za pomocą .htpasswdWymuś protokół HTTPSZapobiegaj indeksowaniu wyszukiwarkiX-Robots-TagProdukcja
Wymuś protokół HTTPSPrzekieruj subdomeny inne niż www do wwwLokalny
Brak wyjątkowych reguł.Widziałem wiele przykładów tego, jak można ustawić określone środowiska na moduł. LubićRewriteCond %{REQUEST_HOST} ^dev.myurl.com
dla modułu mod_rewrite itakie sztuczki dla wymagań .htpasswd.
Ale to, co naprawdę wolałbym, to sposób na ustawienie globalnych zmiennych środowiskowych, a następnie ponowne użycie tych zmiennych w pliku .htaccess na środowisko. Aby użyć pseudo-javascript jako przykładu, coś w stylu:
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
}
W ten sposób wszystkie reguły specyficzne dla środowiska są zgrupowane razem, tworząc naprawdę czysty plik i tylko jedna zmienna musi zostać zmieniona, jeśli zmieni się środowisko.
Widziałem kilka odniesień do zmiany ustawień w plikach konfiguracyjnych Apache, ale oczywiście nie jest to opłacalna opcja, jeśli mam do czynienia z hostami innych firm.
Czy więc to pobożne życzenia z piekła na niebie, czy też można to zrobić?