.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 redirecionamentosDesenvolvimento
Proteger com Senha com .htpasswdForçar o protocolo HTTPSImpedir a indexação do mecanismo de pesquisa comX-Robots-TagProdução
Forçar o protocolo HTTPSRedirecionar subdomínios não www para wwwLocal
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?