Guia do Ficheiro .htaccess

O que é o ficheiro .htaccess?
O .htaccess (Hypertext Access) é um ficheiro de configuração para os servidores web Apache e LiteSpeed. Na BeoHosting, edita-o através do painel de controlo cPanel. Encontra-se no diretório raiz do seu site e permite controlar o comportamento do servidor ao nível do diretório - sem acesso à configuração principal do servidor. Isto torna-o extremamente útil em alojamento partilhado, onde não tem acesso ao ficheiro httpd.conf.
O ponto inicial no nome significa que o ficheiro está oculto nos sistemas Linux/Unix. Alguns clientes FTP e gestores de ficheiros não o mostram por predefinição - verifique as opções para mostrar ficheiros ocultos. No cPanel, o File Manager tem uma opção "Show Hidden Files" nas definições.
Onde se encontra o .htaccess?
O ficheiro .htaccess principal está no diretório raiz do seu site (public_html ou htdocs). As regras nele aplicam-se a todos os ficheiros e subdiretórios. Pode ter ficheiros .htaccess adicionais em subdiretórios com regras específicas desse diretório - estas substituem as regras do .htaccess principal para os ficheiros desse diretório.
Redirecionamentos
Redirecionamento permanente 301
Um redirecionamento 301 indica aos motores de busca que a página foi movida permanentemente para um novo endereço. O valor de SEO (link juice) transfere-se para o novo URL. Utilize-o quando alterar a estrutura de URLs, mudar o site para um novo domínio ou consolidar vários URLs num só.
- Redirecionar uma página: Redirect 301 /old-page /new-page - redireciona um caminho específico para um novo.
- Redirecionar um domínio inteiro: Utilize RewriteRule com uma condição HTTP_HOST para redirecionar todo o tráfego de um domínio para outro.
- Redirecionar www para não-www: Uma RewriteCond para HTTP_HOST que verifica o prefixo www e redireciona para a versão sem www (ou vice-versa).
Redirecionamento temporário 302
Um redirecionamento 302 é temporário - indica aos motores de busca para manter o URL antigo no índice, porque a página pode voltar ao endereço antigo. Utilize-o para promoções temporárias, testes A/B ou manutenção.
Forçar HTTPS
Um dos usos mais comuns do .htaccess é redirecionar o tráfego HTTP para HTTPS. Para isso precisa de um certificado SSL instalado que ativa o HTTPS. Isto é essencial para a segurança do site e para o posicionamento em SEO. A regra utiliza RewriteCond para verificar se a ligação já é HTTPS (através da variável HTTPS ou do cabeçalho X-Forwarded-Proto) e, caso não seja, efetua um redirecionamento 301 para a versão HTTPS do mesmo URL.
Regras de segurança
Proteger o acesso a ficheiros sensíveis
Bloqueie o acesso a ficheiros que não devem estar publicamente acessíveis. Uma diretiva FilesMatch com expressões regulares pode bloquear o acesso a ficheiros de configuração como .htaccess, .env, wp-config.php, php.ini e semelhantes. O servidor devolve 403 Forbidden quando alguém tenta aceder a estes ficheiros.
Desativar a listagem de diretórios
A opção "Options -Indexes" impede o Apache de mostrar uma lista de ficheiros num diretório sem ficheiro de índice. Sem esta opção, qualquer pessoa pode ver todos os ficheiros de um diretório bastando visitar o URL desse diretório.
Bloquear bots maliciosos
Utilize RewriteCond com a variável HTTP_USER_AGENT para bloquear bots maliciosos conhecidos, scrapers e crawlers de spam. Pode usar expressões regulares para fazer corresponder várias strings de user-agent e redirecioná-las para uma página 403 ou simplesmente bloquear o acesso.
Proteção contra hotlinking
O hotlinking é quando outros sites utilizam as suas imagens diretamente do seu servidor, consumindo a sua largura de banda. Uma regra RewriteCond verifica o cabeçalho HTTP_REFERER e bloqueia os pedidos de imagens (jpg, jpeg, png, gif, svg) que não venham do seu domínio. Pode até redirecionar as imagens com hotlink para uma imagem de substituição que diga que o hotlinking está bloqueado.
Caching
Um caching corretamente configurado acelera drasticamente o seu site para visitantes recorrentes. O navegador guarda os ficheiros localmente, de modo a não terem de ser descarregados novamente em cada visita.
Definições de cache por tipo de ficheiro
Utilize o mod_expires para controlar durante quanto tempo os navegadores guardam em cache os diferentes tipos de ficheiro:
- Imagens (jpg, png, gif, svg, webp): 1 ano - as imagens raramente mudam.
- Ficheiros CSS e JavaScript: 1 mês - mudam mais frequentemente do que as imagens, mas não diariamente.
- Fontes (woff, woff2, ttf): 1 ano - as fontes praticamente nunca mudam.
- Páginas HTML: Cache curta ou inexistente - o conteúdo atualiza-se com frequência.
- PDF e documentos: 1 mês - atualizados ocasionalmente.
Compressão GZIP
A compressão GZIP reduz o tamanho dos ficheiros enviados para o navegador, normalmente em 60-80%. Utilize o mod_deflate para comprimir text/html, text/css, application/javascript, application/json, text/xml e formatos de texto semelhantes. Não comprima imagens, porque já estão comprimidas.
Páginas de erro personalizadas
Em vez de erros genéricos do servidor, pode mostrar páginas personalizadas com o estilo do seu site que ajudam os visitantes a encontrar o que procuram.
- ErrorDocument 404: A página mostrada quando a página pedida não existe. Inclua a pesquisa do site, links populares e informações de contacto.
- ErrorDocument 403: Mostrada quando o acesso é proibido. Explique a razão e ofereça uma alternativa.
- ErrorDocument 500: Erro interno do servidor. Explique que o problema é temporário e ofereça o contacto de suporte.
- ErrorDocument 503: Serviço indisponível. Útil para mostrar uma página de manutenção com a hora prevista de regresso.
Snippets úteis para uso diário
Bloquear um endereço IP
Utilize as diretivas Require (Apache 2.4+) ou Order/Deny (Apache 2.2) para bloquear endereços IP ou intervalos específicos. Isto é útil para bloquear atacantes conhecidos ou visitantes indesejados.
Proteger o admin do WordPress
Restrinja o acesso ao diretório wp-admin e ao wp-login.php a endereços IP específicos. Isto reduz drasticamente os ataques de brute-force ao seu site WordPress. Pode também adicionar autenticação HTTP como camada de proteção adicional.
Definir valores de PHP
Em alojamento partilhado pode alterar a configuração do PHP através do .htaccess utilizando as diretivas php_value e php_flag: upload_max_filesize para o tamanho de upload, max_execution_time para o timeout do script, memory_limit para a RAM e post_max_size para o tamanho do pedido POST.
Redirecionamento de manutenção
Quando estiver a trabalhar no site e quiser mostrar uma página de manutenção aos visitantes, utilize RewriteCond para verificar se o visitante vem do seu IP (deixando-se passar a si próprio) e redirecione todos os outros para uma página maintenance.html. Utilize um redirecionamento 302 (temporário), nunca 301.
Erros comuns e resolução de problemas
- 500 Internal Server Error: O erro mais comum. Normalmente significa um erro de sintaxe no .htaccess. Verifique os logs do servidor (Error Log no cPanel) para mais detalhes. Remova as regras uma a uma até encontrar a problemática.
- Loop de redirecionamento: Acontece quando duas regras redirecionam uma para a outra. Utilize condições RewriteCond para evitar o loop (por exemplo, verificar se já é HTTPS antes de redirecionar).
- As regras não funcionam: Verifique se o mod_rewrite está ativado. No LiteSpeed, as regras do Apache normalmente funcionam, mas pode haver diferenças. Verifique também se o .htaccess tem as permissões corretas (644).
- Problema de UTF-8: Guarde o ficheiro .htaccess em codificação UTF-8 sem BOM (Byte Order Mark). O BOM pode causar comportamentos inesperados.
Conclusão
O .htaccess é uma ferramenta poderosa que lhe dá controlo ao nível do servidor sobre o seu site. Desde redirecionamentos e segurança, passando pelo caching, até às páginas de erro personalizadas - uma configuração correta pode melhorar drasticamente o desempenho, a segurança e o SEO. Faça sempre uma cópia de segurança antes de alterações, teste regra a regra e utilize os logs do servidor para diagnosticar problemas.
BeoHosting Team
10+ anos de experiência — Especialistas em alojamento web e infraestrutura
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Última atualização: