.htaccess em vários ambientes

Eu sei que perguntas semelhantes foram feitas antes, mas não encontrei nenhuma resposta realmente específica para a minha situação.

Eu tenho um site do ExpressionEngine em execução em vários ambientes (local, dev, produção) e cada um desses ambientes precisa de regras de .htaccess diferentes:

Todos os ambientes

Remover index.phpDefinir um arquivo 404Definir 301 redirecionamentos

Desenvolvimento

Proteger com Senha com .htpasswdForçar o protocolo HTTPSImpedir a indexação do mecanismo de pesquisa comX-Robots-Tag

Produção

Forçar o protocolo HTTPSRedirecionar subdomínios não www para www

Local

Nenhuma regra única.

Eu vi muitos exemplos de como você pode definir ambientes específicos por módulo. GostarRewriteCond %{REQUEST_HOST} ^dev.myurl.com para o módulo mod_rewrite, etruques como este para requisitos de .htpasswd.

Mas o que eu realmente prefiro é alguma maneira de definir variáveis ​​de ambiente global, então reutilize essas variáveis ​​no arquivo .htaccess por ambiente. Para usar o pseudo-javascript como um exemplo, 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
}

Dessa forma, todas as regras específicas do ambiente são agrupadas, tornando um arquivo realmente limpo, e apenas uma variável precisa ser alterada se um ambiente for alterado.

Eu vi algumas referências para alterar as configurações nos arquivos de configuração do Apache, mas obviamente isso não é uma opção viável se eu estiver lidando com hosts de terceiros.

Então, esse pensamento positivo é feito de torta no céu, ou pode ser feito?

questionAnswers(2)

yourAnswerToTheQuestion