Poupe 15% em todos os serviços de alojamento

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código: Skills Começar a trabalhar
Secções
Hospedagem LiteSpeed

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:

  1. Use um editor de texto simples como Nano, Vim, Notepad++, ou qualquer editor de código.
  2. 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.
  3. 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.
  4. Guarde-o como texto simples — nunca como um documento formatado ou de texto enriquecido.
  5. 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/.htaccess

Apó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.html

Isto 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.html

Utilize 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 On

Esta 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.html

Melhores 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.100

Bloquear Múltiplos Endereços IP

Deny from 192.168.1.100
Deny from 10.0.0.50
Deny from 203.0.113.0/24

Permitir Apenas IPs Específicos (Lista Branca)

Order Deny,Allow
Deny from all
Allow from 192.168.1.101
Allow from 203.0.113.25

Esta 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 yourusername

Passo 2: Adicione o seguinte ao seu ficheiro .htaccess

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Qualquer 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 -Indexes

Esta ú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 .htaccess apenas 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/.htaccess

Isto 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_log

Comente 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.html

Isto 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 HospedagemSuporte .htaccessNotas
Hospedagem Compartilhada✅ Suporte completoNormalmente a única forma de configurar Apache
Hospedagem VPS✅ Suporte completoTambém pode editar httpd.conf diretamente para melhor desempenho
Servidores Dedicados✅ Suporte completoAcesso root completo; considere mover regras para a configuração principal
Servidores Nginx❌ Não suportadoNginx 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.