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?


