O que é .htaccess? Um Guia Completo para Configuração do Apache
O ficheiro .htaccess é uma das ferramentas mais poderosas disponíveis para administradores web que trabalham com servidores Apache. Quer necessite gerir redirecionamentos de URL, impor HTTPS, restringir acesso por IP ou servir páginas de erro personalizadas, .htaccess oferece-lhe controlo granular ao nível do diretório sobre o comportamento do seu servidor — sem tocar na configuração principal do servidor.
Neste guia abrangente, cobriremos tudo o que precisa saber sobre .htaccess: o que é, como funciona, como criar um, e os casos de utilização mais importantes que todo o administrador web deve dominar.
O que é .htaccess?
O arquivo .htaccess — abreviação de "hypertext access" — é um arquivo de configuração oculto em texto simples usado pelo Apache HTTP Server. Ele permite que você defina diretivas do servidor em uma base por diretório, o que significa que as regras que você coloca em um arquivo .htaccess se aplicam imediatamente a todos os arquivos e subdiretórios dentro da pasta onde o arquivo reside.
Ao contrário das alterações feitas no arquivo de configuração principal do Apache (httpd.conf), as regras .htaccess entram em vigor instantaneamente — nenhuma reinicialização do servidor é necessária. Isso o torna especialmente útil em ambientes de hospedagem compartilhada onde os usuários não têm acesso root à configuração principal do servidor.
Toda vez que um usuário solicita um recurso do seu site, o Apache lê o arquivo .htaccess no diretório relevante e aplica as regras configuradas. Isso o torna flexível e poderoso — mas também um arquivo que deve ser gerenciado com cuidado.
> Quem usa .htaccess? Desenvolvedores web, especialistas em SEO e administradores de sistemas que trabalham em ambientes de hospedagem baseados em Apache — incluindo planos de Hospedagem Web Compartilhada e Hospedagem VPS — dependem de .htaccess diariamente para controlar o comportamento do site.
Como Criar um Ficheiro .htaccess
Criar um ficheiro .htaccess é simples, mas algumas regras devem ser seguidas com precisão:
- Use um editor de texto simples como Nano, Vim, Notepad++, ou qualquer editor de código.
- Nomeie o ficheiro exatamente .htaccess — com um ponto no início e sem extensão de ficheiro. O próprio nome do ficheiro é a extensão.
- Coloque o ficheiro no diretório raiz do seu website (geralmente chamado public_html, www, ou htdocs) ou em qualquer subdiretório onde pretenda que regras específicas se apliquem.
- Guarde-o como texto simples — nunca como um documento formatado ou de texto enriquecido.
- Defina as permissões corretas do ficheiro: 644 é o nível de permissão recomendado, que permite ao proprietário ler e escrever enquanto restringe outros a acesso apenas de leitura.
Num servidor Linux via SSH, pode criar o ficheiro instantaneamente com:
nano /var/www/html/public_html/.htaccessApós ser guardado, o Apache começará a aplicar as regras imediatamente.
Usos Comuns de .htaccess
Abaixo estão as diretivas .htaccess mais importantes e amplamente utilizadas, completas com exemplos práticos de código.
1. Redirecionamento de URLs
Os redirecionamentos são essenciais quando as páginas são movidas, renomeadas ou permanentemente eliminadas. Eles preservam o valor de SEO e garantem que os utilizadores sejam enviados para a localização correta.
Redirecionamento Permanente 301 (Página Movida)
Redirect 301 /old-page.html https://www.example.com/new-page.htmlIsto envia tanto utilizadores como rastreadores de motores de busca do URL antigo para o novo, transferindo a equidade de ligação completa no processo.
Redirecionamento Temporário 302
Redirect 302 /sale https://www.example.com/seasonal-offers.htmlUtilize um 302 quando o redirecionamento é temporário, como durante uma promoção ou período de manutenção.
Redirecionar um Domínio Inteiro
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com$ [NC]
RewriteRule ^(.*)$ https://www.newdomain.com/$1 [L,R=301]Isto é particularmente útil durante migrações de domínio — um cenário comum ao registar um novo domínio através de um serviço como Registo de Domínios.
2. Reescrita de URLs para URLs Amigáveis para SEO
A reescrita de URLs transforma URLs dinâmicos e pesados em parâmetros em estruturas limpas, legíveis e amigáveis para SEO. Este é um dos usos mais impactantes de .htaccess para melhorar as classificações dos motores de busca.
Ativar o Motor de Reescrita
RewriteEngine OnEsta linha deve aparecer antes de qualquer diretiva RewriteRule.
Reescrever URLs Dinâmicos para URLs Limpos
RewriteRule ^products/([a-zA-Z0-9-]+)$ product.php?item=$1 [L]Isto reescreve example.com/products/blue-sneakers para example.com/product.php?item=blue-sneakers — de forma transparente, sem alterar o que o utilizador vê no navegador.
Remover Extensões .php de URLs
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)$ $1.php [NC,L]Isto permite que URLs como example.com/about sirvam about.php sem expor a extensão do ficheiro.
3. Forçar HTTPS
Forçar todo o tráfego através de HTTPS é um requisito fundamental de segurança e um sinal de classificação confirmado pelo Google. Se tem um Certificado SSL instalado, utilize as seguintes regras .htaccess para garantir que todo o tráfego HTTP é automaticamente redirecionado para a versão segura do seu site.
Forçar HTTPS em Todo o Site
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Forçar HTTPS e Remover www (URL Canónico)
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www. [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]Isto garante que o seu site é sempre servido a partir de um único URL HTTPS canónico — crítico tanto para SEO como para segurança.
4. Configurar Páginas de Erro Personalizadas
Em vez de exibir mensagens de erro genéricas do navegador, pode configurar .htaccess para servir páginas de erro personalizadas com marca, amigáveis ao utilizador, que mantêm os visitantes no seu site.
Códigos de Erro HTTP Comuns
ErrorDocument 400 /errors/400.html
ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.htmlMelhores Práticas para Páginas de Erro Personalizadas:
- Inclua a navegação do seu site para que os utilizadores possam encontrar o que procuram.
- Adicione uma barra de pesquisa para ajudar os utilizadores a recuperar de erros 404.
- Mantenha o design consistente com a marca do seu site principal.
- Evite loops de redirecionamento — as páginas de erro devem ser ficheiros HTML estáticos.
5. Restringir Acesso por Endereço IP
.htaccess oferece-lhe controlo fino sobre quem pode aceder ao seu site ou diretórios específicos com base no endereço IP. Isto é inestimável para proteger painéis de administração, ambientes de teste ou diretórios sensíveis.
Bloquear um Endereço IP Específico
Deny from 192.168.1.100Bloquear Múltiplos Endereços IP
Deny from 192.168.1.100
Deny from 10.0.0.50
Deny from 203.0.113.0/24Permitir Apenas IPs Específicos (Lista Branca)
Order Deny,Allow
Deny from all
Allow from 192.168.1.101
Allow from 203.0.113.25Esta configuração bloqueia todo o tráfego exceto dos endereços IP explicitamente listados — ideal para bloquear um painel de administração WordPress ou um site de teste.
6. Proteger Diretórios com Palavra-passe
Pode adicionar Autenticação HTTP Básica a qualquer diretório utilizando .htaccess combinado com um ficheiro .htpasswd.
Passo 1: Criar o ficheiro .htpasswd
Utilize o utilitário htpasswd no seu servidor:
htpasswd -c /etc/apache2/.htpasswd yourusernamePasso 2: Adicione o seguinte ao seu ficheiro .htaccess
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-userQualquer pessoa que tente aceder ao diretório protegido será solicitada a introduzir um nome de utilizador e palavra-passe antes de obter acesso.
7. Controlar a Colocação em Cache do Navegador
A colocação em cache adequadamente configurada melhora a velocidade de carregamento da página e reduz a carga do servidor — ambos fatores importantes para SEO e experiência do utilizador.
Definir Cabeçalhos de Expiração de Cache
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/html "access plus 1 day"
</IfModule>8. Bloquear Hotlinking
O hotlinking ocorre quando outros sites incorporam as suas imagens diretamente, consumindo a sua largura de banda sem a sua permissão. Bloqueie-o com .htaccess:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www.)?example.com/ [NC]
RewriteRule .(jpg|jpeg|png|gif|webp|svg)$ - [F,NC]Substitua example.com pelo seu domínio real. Isto devolve uma resposta 403 Forbidden a qualquer site externo que tente fazer hotlink das suas imagens.
9. Desativar Listagem de Diretórios
Por padrão, o Apache pode exibir o conteúdo de um diretório se nenhum ficheiro de índice estiver presente. Este é um risco de segurança significativo que expõe a sua estrutura de ficheiros.
Desativar Navegação de Diretórios
Options -IndexesEsta única linha impede que o Apache gere listagens de diretórios automáticas, devolvendo um erro 403 Forbidden em vez disso.
Considerações de Segurança e Desempenho
Embora .htaccess seja extremamente poderoso, deve ser usado com responsabilidade. Aqui estão as considerações-chave que todo administrador deve ter em mente:
Impacto no Desempenho
Apache lê o arquivo .htaccess em cada solicitação ao servidor. Se o seu arquivo .htaccess contiver dezenas de regras complexas, isso adiciona uma sobrecarga mensurável a cada solicitação. Para minimizar o impacto no desempenho:
- Mantenha as regras simples e bem organizadas — remova qualquer regra que não seja mais necessária.
- Use
.htaccessapenas onde necessário — coloque-o apenas em diretórios que exigem regras específicas. - Considere mover as regras para
httpd.conf— em um VPS Hosting ou Servidor Dedicado onde você tem acesso root, colocar as regras diretamente na configuração principal do Apache é significativamente mais rápido, pois é lido apenas uma vez na inicialização.
Permissões de Ficheiro
Sempre defina as permissões do arquivo .htaccess para 644:
chmod 644 /var/www/html/public_html/.htaccessIsto impede que utilizadores não autorizados modifiquem o ficheiro enquanto permite que Apache o leia.
Proteja o Próprio Ficheiro .htaccess
Impeça o acesso direto ao seu arquivo .htaccess a partir da web:
<Files ".htaccess">
Order Allow,Deny
Deny from all
</Files>Testando e Resolvendo Problemas de Regras .htaccess
A sintaxe incorreta de .htaccess é uma das causas mais comuns de respostas 500 Internal Server Error. Siga estas melhores práticas para depurar problemas de forma eficiente:
Faça Uma Alteração de Cada Vez
Nunca faça múltiplas alterações simultaneamente. Aplique uma regra, teste-a e depois prossiga para a próxima. Isso facilita a identificação de qual regra causou um problema.
Verifique os Registos de Erro do Apache
Os registos de erro do Apache são sua ferramenta de diagnóstico principal:
# Ubuntu/Debian
tail -f /var/log/apache2/error.log
# CentOS/RHEL
tail -f /var/log/httpd/error_logComente Regras Temporariamente
Use o caractere # para comentar regras que deseja desativar sem deletar:
# RewriteRule ^old-page$ /new-page [R=301,L]Teste Redirecionamentos com curl
Use curl para verificar o comportamento de redirecionamento a partir da linha de comando:
curl -I http://www.example.com/old-page.htmlIsto retorna os cabeçalhos HTTP, incluindo o cabeçalho Location para redirecionamentos, sem carregar a página completa.
Use um Testador de .htaccess Online
Várias ferramentas online gratuitas permitem testar regras de reescrita .htaccess contra URLs de exemplo antes de implantá-las no seu servidor ativo.
.htaccess em Diferentes Ambientes de Hospedagem
A disponibilidade e o comportamento de .htaccess dependem do seu ambiente de hospedagem:
| Tipo de Hospedagem | Suporte .htaccess | Notas |
|---|---|---|
| Hospedagem Compartilhada | ✅ Suporte completo | Normalmente a única forma de configurar Apache |
| Hospedagem VPS | ✅ Suporte completo | Também pode editar httpd.conf diretamente para melhor desempenho |
| Servidores Dedicados | ✅ Suporte completo | Acesso root completo; considere mover regras para a configuração principal |
| Servidores Nginx | ❌ Não suportado | Nginx usa um sistema de configuração diferente |
Se você está em um VPS com cPanel, pode gerenciar muitas funções .htaccess diretamente através da interface cPanel, incluindo redirecionamentos, proteção de hotlink e privacidade de diretório — sem editar o arquivo manualmente.
Perguntas Frequentes Sobre .htaccess
.htaccess funciona no Nginx?
Não. .htaccess é exclusivo do Apache HTTP Server. Nginx usa um modelo de configuração diferente onde todas as regras são definidas nos arquivos de configuração do bloco de servidor. Se você está migrando do Apache para Nginx, precisará converter suas regras .htaccess para a sintaxe do bloco server do Nginx.
Posso ter vários arquivos .htaccess?
Sim. Você pode colocar um arquivo .htaccess em qualquer diretório. Apache processa-os hierarquicamente — as regras no arquivo .htaccess de um subdiretório podem substituir ou complementar as regras dos diretórios pai.
As alterações do .htaccess entram em vigor imediatamente?
Sim. Ao contrário das alterações no httpd.conf, as alterações do .htaccess entram em vigor imediatamente sem exigir uma reinicialização do Apache.
O que acontece se .htaccess tiver um erro de sintaxe?
Apache retornará um erro 500 para qualquer solicitação ao diretório afetado. Sempre faça backup do seu arquivo .htaccess antes de fazer alterações.
Conclusão
O arquivo .htaccess é uma ferramenta indispensável no kit de qualquer administrador web. Desde a aplicação de HTTPS e criação de URLs amigáveis para SEO até o bloqueio de IPs maliciosos e proteção de diretórios sensíveis, fornece um mecanismo flexível e poderoso para controlar o comportamento do servidor Apache ao nível do diretório.
No entanto, com esse poder vem a responsabilidade. Teste sempre as alterações cuidadosamente, monitore seus registos de erro e mantenha suas regras o mais simples possível para evitar degradação de desempenho. Em ambientes onde tem acesso total ao servidor — como um Servidor Dedicado — considere migrar regras críticas para a configuração principal do Apache para um desempenho ideal.
Quer esteja a gerir um blog simples em Alojamento Web Partilhado ou a executar uma aplicação complexa num VPS de alto desempenho, dominar .htaccess lhe dará controlo preciso e imediato sobre como seu servidor web lida com cada solicitação.
em todos os serviços de alojamento