Redirecionamento condicional 301 dependendo do servidor (localhost vs produção)

3

Por prática, faço um redirecionamento 301 sem www - > www para minhas implantações de servidor de produção. Mas eu tenho um pequeno problema / discrepância com as configurações de reconfiguração .htaccess entre meu servidor de desenvolvimento & o servidor de produção.

Se eu deixar o endereço não www - > condição de redirecionamento de www 301 no arquivo .htaccess (que é implantado com o site) meu servidor de desenvolvimento tenta redirecionar " link " para " link "que não funciona.

Então eu tenho que alternar entre as condições de reescrita do .htaccess dependendo do servidor, e isso é um pouco complicado.

Existe alguma maneira de usar uma declaração condicional para alcançar algo como ...

# Rewrite "www.domain.com -> domain.com" 
<IfModule mod_rewrite.c>
  <If !localhost>         #This is not valid code
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
  <else>
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
    RewriteCond %{HTTP_HOST} (.+)$ [NC]
    RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
  </If>
</IfModule>

Ou há uma maneira mais inteligente de contornar isso?

Aguardamos as suas ideias. Muito obrigado. Prembo.

    
por Prembo 30.09.2011 / 01:45

1 resposta

3

Parece que sua configuração pretende remover as solicitações www de localhost , se eu entender isso, certo? Essa parte não deve ser necessária, então deixe-me saber se estou perdendo alguma coisa.

Que tal algo como isto:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^localhost$ [NC]
RewriteCond %{HTTP_HOST} !^www\..*$ [NC]
RewriteCond %{HTTP_HOST} ^(.+)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
    
por 30.09.2011 / 02:15