Wiem, że podobne pytania zadawano wcześniej, ale nie znalazłem żadnych konkretnych odpowiedzi w mojej sytuacji..htaccess w wielu środowiskach
Mam witryny ExpressionEngine działa na wielu środowiskach (lokalnym, dev, produkcja), a każdy z tych środowisk potrzebuje różne zasady .htaccess:
wszystkich środowiskach
- Remove index.php
- Ustaw plik 404
- Zestaw przekierowań 301
Development
- Ochrona hasłem z .htpasswd protokołu
- Siła HTTPS
- Prevent indeksowanie wyszukiwarki internetowej z X-Robots-Tag
Produkcji
- protokół HTTPS Siła
- przekierowania subdomeny bez www na www
lokalne
- Brak unikalne przepisy.
Widziałem wiele przykładów, jak ustawić określone środowiska na moduł. Podobnie jak RewriteCond %{REQUEST_HOST} ^dev.myurl.com
dla modułu mod_rewrite i tricks like this dla wymagań .htpasswd.
Ale wolałbym, w jaki sposób ustawić globalne zmienne środowiskowe, a następnie ponownie użyć tych zmiennych w pliku .htaccess dla środowiska. Aby użyć pseudo-skrypt jako przykład coś takiego:
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
}
ten sposób wszystkie wszystkie zasady specyficzne dla środowiska są zgrupowane razem, tworząc naprawdę czysty plik, a tylko jedna zmienna musi być zmieniony, jeżeli środowisko jest zmieniony.
Widziałem kilka odniesień do zmiany ustawień w plikach konfiguracyjnych Apache, ale oczywiście nie jest to realną opcją, jeśli mam do czynienia z hostami innych firm.
A więc czy to życzeniowe myślenie w stylu "kule w niebie", czy może to zrobić?
natknąłem [artykuł ten] (http://www.thenerdary.net/post/20965499862/htaccess-environments), których jeszcze nie próbowałem, ale wygląda obiecująco. – kgrote