.htaccess en entornos múltiples
Sé que preguntas similares se han hecho antes, pero no he encontrado ninguna respuesta realmente específica para mi situación.
Tengo un sitio de ExpressionEngine que se ejecuta en múltiples entornos (local, dev, producción), y cada uno de esos entornos necesita diferentes reglas .htaccess:
Todos los ambientes
Eliminar index.phpEstablecer un archivo 404Set 301 RedireccionesDesarrollo
Proteger con contraseña con .htpasswdForzar protocolo HTTPSEvitar la indexación de motores de búsqueda conX-Robots-TagProducción
Forzar protocolo HTTPSRedirigir los subdominios no www a wwwLocal
No hay reglas únicas.He visto muchos ejemplos de cómo puede configurar entornos específicos por módulo. Me gustaRewriteCond %{REQUEST_HOST} ^dev.myurl.com
para el modulo mod_rewrite, ytrucos como este para los requisitos .htpasswd.
Pero lo que realmente preferiría es alguna forma de establecer variables de entorno globales, luego reutilizar esas variables en el archivo .htaccess por entorno. Para usar pseudo-javascript como ejemplo, algo como:
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
}
De esta manera, todas las reglas específicas del entorno se agrupan, creando un archivo realmente limpio, y solo se necesita cambiar una variable si se cambia un entorno.
He visto algunas referencias para alterar la configuración en los archivos de configuración de Apache, pero obviamente no es una opción viable si estoy tratando con hosts de terceros.
Entonces, ¿esta ilusión de tarta en el cielo, o puede hacerse?