Arquivo .htaccess para leigos. O que você precisa saber

Se você chegou aqui, é bem provável que tenha ouvido falar de um simples arquivo de texto que pode fazer muito pelo seu site, mas cujos benefícios práticos são desconhecidos de muitas pessoas – o .htaccess.

Já ouviu falar dele, mas não sabe o que é? Qual sua função e utilidade? Por que ele é tão importante?

No post de hoje daremos as respostas a estas e outras questões comuns sobre esse recurso vital para o bom funcionamento de um site.

O que é o .htaccess?

O .htaccess é um arquivo de texto que contém as configurações e regras de funcionamento de sites hospedados em servidores Web Apache.

Embora curta, a definição acima diz muita coisa:

  • Arquivo de texto – é um arquivo oculto do sistema (no Linux, arquivos que começam com ponto são ocultos por convenção) e o seu conteúdo é de texto puro;

  • Servidor Web – um servidor Web (Web server, em inglês) é o serviço presente em toda conta de hospedagem, cuja função principal é servir (entregar) páginas HTML ao navegador dos visitantes;

  • Apache – é um dos muitos serviços de Web server existentes e, que atualmente, responde por aproximadamente 21% do mercado global (segundo dados da W3Techs);

  • Regras – permite estabelecer regras de como o serviço de exibição de páginas deve se comportar em determinadas situações (redirecionar um endereço ou bloquear um acesso);

  • Configurações – define parâmetros gerais de funcionamento do Apache para aquele site.

Em resumo, em um site hospedado em servidor Apache, o .htaccess é o arquivo que permite ajustar o comportamento do site sem precisar mexer na configuração geral do servidor.

Se ainda não ficou totalmente claro o que é o .htaccess, isso deve mudar quando você entender por que ele existe

Para que serve o .htaccess?

Esse é um arquivo padrão do serviço de exibição de páginas Apache, que conforme antecipamos, permite ditar uma série de funcionamentos, como por exemplo:

  • Configurar redirecionamentos (301, 302), muito importante quando se mudam URLs;

  • Criação de URLs amigáveis (rewrite);

  • Proteção de pastas com senha;

  • Bloqueio de endereços IP ou faixas de IPs;

  • Criação de páginas de erro personalizadas (404, 403, etc.);

  • Definir página inicial (index);

  • Controle de cache e compressão (gzip);

  • Forçar acesso via HTTPS;

  • Bloquear o acesso de arquivos específicos.

Por que o .htaccess é importante?

O .htaccess é fundamental porque permite que o administrador altere o comportamento do seu site sem precisar mexer no servidor inteiro, o que faz muita diferença em hospedagem compartilhada, que é o caso da grande maioria dos sites.

Nesse modelo de hospedagem (compartilhada), o servidor Web é usado por vários clientes simultaneamente e, portanto, a configuração geral do Apache, que é feita no arquivo httpd.conf, é acessível apenas pela empresa de hospedagem.

Em outras palavras, o httpd.conf dita as configurações gerais e mais comuns do ambiente e o .htaccess funciona como uma "versão local" dessa configuração, mais específica e restrita exclusivamente à conta de cada usuário que compartilha o servidor. Dessa forma, cada um consegue ajustar o que precisa no seu site, sem afetar os demais.

Na prática, funciona assim, imagine que você instale um certificado SSL e agora quer que todos os visitantes sejam automaticamente redirecionados de “http://” para “https://”. Sem o .htaccess, seria preciso solicitar a alteração da configuração do servidor. Graças ao .htaccess, basta adicionar algumas linhas ao arquivo na sua pasta raiz e o redirecionamento passa a valer só para o seu site, de modo imediato e sem precisar reiniciar o servidor.

Como mencionamos anteriormente, há muitas outras possibilidades. Você pode restringir o acesso a uma área do site apenas para alguns usuários ou faixas de IP, efetuar o redirecionamento de páginas antigas para novas (os chamados redirecionamentos 301), ou quem sabe criar páginas de erro personalizadas, como aquela as famosas "404 – página não encontrada" que são o padrão do servidor.

Logo, o .htaccess é importante porque dá autonomia ao cliente de hospedagem para configurar parâmetros e fazer uma série de ajustes no próprio site, de forma isolada e imediata, sem depender de alterações no servidor inteiro ou de ter que solicitar ao suporte técnico.

Como funciona o .htaccess?

Fica fácil compreender o papel e funcionamento do .htaccess recorrendo a uma simples analogia.

Imagine a portaria de um prédio. Nela, há funcionários que recebem as pessoas que querem entrar no edifício, mas precisam seguir alguns procedimentos e normas previamente conhecidos e estabelecidos. No caso de um site, esses procedimentos constam do .htaccess e assim, a cada visitante que chega ao seu site (na portaria do prédio), o funcionário encarregado por recebê-lo (o Apache), checa a lista de instruções antes de agir:

  • Se o visitante quiser ir a um escritório (uma página), ele deve indicar o elevador e o andar;

  • Se não fornecer documentos (autenticação), não permita a entrada (bloqueie);

  • Se a pessoa já está cadastrada (usuário permitido), não é preciso solicitar informações.

Na prática, o Apache lê o .htaccess toda vez que recebe uma requisição para a pasta onde o arquivo está. Isso significa que as regras são aplicadas em tempo real, o que explica por que uma alteração no arquivo tem efeito quase imediato.

Outros aspectos importantes do .htaccess:

  • Fica localizado por padrão na raiz do site (geralmente a pasta public_html);

  • Tem efeito sobre a pasta onde ele está e para todas as subpastas abaixo dela;

  • Se há apenas um arquivo na raiz do site, as regras valem para o site inteiro;

  • Pode haver mais de um. Se existe um dentro da pasta /blog, suas regras e configurações valem só para blog e eventuais pastas e conteúdos abaixo de blog;

  • Se uma subpasta tiver o seu próprio .htaccess, as regras desse arquivo prevalecem sobre as da pasta acima;

  • As instruções são escritas em texto puro, uma por linha, e o Apache as interpreta de cima para baixo;

  • Linhas iniciadas com # são comentários, ou seja, o servidor as ignora, o que é útil para efeitos de documentação, explicando o que cada bloco faz;

  • Constitui um arquivo de texto simples, que você edita pelo gerenciador de arquivos do painel de controle ou por FTP, sem precisar de conhecimentos avançados de programação.

Por fim, é importante saber que o .htaccess não é obrigatório. Um site pode funcionar perfeitamente sem ele.

O arquivo só existe quando você, ou um desenvolvedor, cria ou adiciona regras a ele. Diversos CMSs, como o WordPress, também criam arquivos .htaccess com configurações necessárias ao bom funcionamento do site.

Como se parece o .htaccess?

Embora possa parecer difícil para quem nunca teve que lidar com um, a verdade é que o .htaccess é um arquivo bem simples: texto puro, sem formatação nenhuma, que você abre no Bloco de Notas ou no editor do gerenciador de arquivos do painel. O que pode assustar é o conteúdo, já que as regras usam uma sintaxe própria do Apache.

Nada melhor do que ver um exemplo real e entender o que cada linha faz, por meio de um exemplo bem comum – “forçar” o site a usar HTTPS.

# Força o uso de HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  • # - a primeira linha, começando com #, é um comentário. Tudo o que vem depois serve para explicar o que aquele bloco faz. É uma boa prática comentar cada regra, especialmente quando o arquivo começa a crescer;

  • RewriteEngine On – a segunda linha liga o motor de reescrita do Apache. A palavra "reescrita" aqui se refere à capacidade de alterar o endereço que o visitante digitou antes de entregar a página. Sem essa linha, as regras seguintes não funcionam e por isso ela costuma aparecer no topo dos blocos que envolvem redirecionamento ou URLs amigáveis;

  • RewriteCond %{HTTPS} off - na terceira há uma condição. Ela diz "aplique a regra seguinte somente se a conexão atual não estiver em HTTPS". O %{HTTPS} é uma variável que o Apache preenche automaticamente com o estado da conexão, e off significa "desligado". Ou seja, essa linha evita redirecionar quem já está em HTTPS, o que causaria um loop infinito;

  • RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] – a última consiste da regra propriamente dita. Ela pega qualquer endereço solicitado (^(.*)$ significa "qualquer coisa") e o redireciona para a versão em HTTPS do mesmo site (https:// + o domínio + o caminho pedido). No final, [L,R=301] são sinalizadores, sendo que R=301 indica um redirecionamento permanente (o famoso 301, importante para o SEO) e L significa "pare aqui", ou seja, não continue aplicando outras regras depois desta.

Enfim, cada linha tem uma função. O segredo é não sair copiando e colando instruções sem que você compreenda o que cada uma faz.

Cuidados com o uso do .htaccess

O .htaccess é simples de editar, mas não é à toa que ele assusta um pouco. Basta um único caractere errado e o seu site pode ficar offline ou ter um funcionamento indesejado.

A boa notícia é que a maioria dos problemas é fácil de evitar e de reverter, desde que você tenha atenção a alguns pontos:

  • Faça backup antes de qualquer alteração. Copie o arquivo original para o seu computador ou renomeie-o no servidor (por exemplo, para .htaccess.bak). Se algo der errado, basta restaurar a cópia e o site volta ao normal;

  • Não saia copiando e colando linhas da Internet. Muitos tutoriais trazem regras prontas, mas elas podem não se encaixar no seu caso ou conflitar com o que já existe no arquivo. Entenda o que cada linha faz antes de adicionar e, na dúvida, teste em uma pasta separada antes de aplicar na raiz do site;

  • Edite com um editor de texto simples. Use o Bloco de Notas do Windows, o editor do gerenciador de arquivos do painel de controle ou um editor de código. Evite processadores de texto como o Word, que podem inserir formatação invisível e “quebrar” o arquivo;

  • Cuidado com o nome do arquivo. O nome precisa ser exatamente .htaccess, começando com ponto e sem extensão no final. Um erro comum é o editor salvar como .htaccess.txt e nesse caso, o Apache simplesmente ignora o arquivo;

  • Atenção ao erro 500. Se após uma alteração o site passar a mostrar a página "Erro interno do servidor" (erro 500), é sinal de que algo no .htaccess está incorreto. A solução mais rápida é restaurar o backup;

  • Lembre-se do alcance das regras. Um .htaccess na raiz do site afeta tudo o que está nas subpastas. Se a alteração for específica para uma pasta, aplique o arquivo apenas ali, para não afetar o restante do site;

  • Fique atento às atualizações do seu site. Sistemas como o WordPress costumam criar e atualizar o .htaccess automaticamente. Se você adicionar regras manuais, elas podem ser sobrescritas em uma atualização. Por isso, mantenha um backup com comentários do que foi adicionado por você, no próprio arquivo;

  • Não mexa no que você não entende. Se o arquivo já veio com blocos criados pelo seu sistema ou pelo provedor de hospedagem, evite apagá-los ou alterá-los sem saber o que fazem. Na dúvida, consulte o suporte da hospedagem.

Conclusão

O arquivo .htaccess pode parecer intimidador no início, mas é um poderoso aliado para gerenciar seu site com autonomia. Ao entender sua função e tomar os devidos cuidados, você ganha controle sobre redirecionamentos, segurança e desempenho de forma simples e imediata. Agora que você já conhece o básico, que tal dar o próximo passo e explorar suas regras na prática?

Comentários ({{totalComentarios}})