15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
31.10.2024
1 +1

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, forçar 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 de saber sobre .htaccess: o que é, como funciona, como criar um, e os casos de uso mais importantes que todo o administrador web deve dominar.

O que é .htaccess?

O ficheiro .htaccess — abreviatura de “hypertext access” — é um ficheiro de configuração oculto em texto simples utilizado pelo Apache HTTP Server. Permite-lhe definir diretivas de servidor numa base por diretório, o que significa que as regras que coloca num ficheiro .htaccess se aplicam imediatamente a todos os ficheiros e subdiretórios dentro da pasta onde o ficheiro reside.

Ao contrário das alterações feitas ao ficheiro de configuração principal do Apache (httpd.conf), as regras .htaccess entram em vigor instantaneamente — não é necessário reiniciar o servidor. Isto torna-o especialmente útil em ambientes de alojamento partilhado onde os utilizadores não têm acesso root à configuração principal do servidor.

Sempre que um utilizador solicita um recurso do seu website, Apache lê o ficheiro .htaccess no diretório relevante e aplica as regras configuradas. Isto torna-o flexível e poderoso — mas também um ficheiro que deve ser gerido com cuidado.

> Quem utiliza .htaccess? Programadores web, especialistas em SEO e administradores de sistemas que trabalham em ambientes de alojamento baseados em Apache — incluindo planos de Alojamento Web Partilhado e Alojamento VPS — dependem de .htaccess diariamente para controlar o comportamento do website.

Como Criar um Ficheiro .htaccess

Criar um ficheiro .htaccess é simples, mas algumas regras devem ser seguidas com precisão:

  1. Utilize um editor de texto simples como Nano, Vim, Notepad++ ou qualquer editor de código.
  2. Nomeie o ficheiro exatamente .htaccess — com um ponto inicial 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 denominado 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 de texto formatado ou 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

Uma vez guardado, Apache começará a aplicar as regras imediatamente.

Utilizações Comuns de .htaccess

Abaixo estão as diretivas .htaccess mais importantes e amplamente utilizadas, completas com exemplos de código prático.

1. Redirecionamento de URLs

Os redirecionamentos são essenciais quando as páginas são movidas, renomeadas ou permanentemente eliminadas. Preservam o valor de SEO e garantem que os utilizadores são 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, passando a totalidade da equidade de ligação 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 URL para URLs Amigáveis para SEO

A reescrita de URL transforma URLs dinâmicos, pesados em parâmetros, em estruturas limpas, legíveis e amigáveis para SEO. Esta é uma das utilizações 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 de segurança fundamental 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 Vários 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 para um nome de utilizador e palavra-passe antes de ganhar acesso.

7. Controlar a Cache do Navegador

A 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 websites 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 retorna uma resposta 403 Forbidden a qualquer site externo que tente fazer hotlink das suas imagens.

9. Desativar Listagem de Diretório

Por padrão, Apache pode exibir o conteúdo de um diretório se nenhum ficheiro de índice estiver presente. Isto é um risco de segurança significativo que expõe a sua estrutura de ficheiros.

Desativar Navegação de Diretório

Options -Indexes

Esta única linha impede que Apache gere listagens de diretório automáticas, retornando um erro 403 Forbidden em vez disso.

Considerações de Segurança e Desempenho

Embora .htaccess seja extremamente poderoso, deve ser utilizado responsavelmente. Aqui estão as considerações-chave que todo o administrador deve ter em mente:

Impacto no Desempenho

Apache lê o ficheiro .htaccess em cada solicitação ao servidor. Se o seu ficheiro .htaccess contém dezenas de regras complexas, isto adiciona overhead mensurável a cada solicitação. Para minimizar o impacto no desempenho:

  • Mantenha as regras enxutas e bem organizadas — remova qualquer regra que já não seja necessária.
  • Utilize .htaccess apenas onde necessário — coloque-o apenas em diretórios que exijam regras específicas.
  • Considere mover regras para httpd.conf — num ambiente onde tem acesso total ao servidor — como um Alojamento VPS ou Servidor Dedicado onde tem acesso root — colocar regras diretamente na configuração principal do Apache é significativamente mais rápido uma vez que é lido apenas uma vez no arranque.

Permissões de Ficheiro

Sempre defina as permissões do ficheiro .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.

Proteger o Próprio Ficheiro .htaccess

Impeça o acesso direto ao seu ficheiro .htaccess a partir da web:

<Files ".htaccess">
    Order Allow,Deny
    Deny from all
</Files>

Testar e Resolver 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:

Fazer Uma Alteração de Cada Vez

Nunca faça várias alterações simultaneamente. Aplique uma regra, teste-a, depois prossiga para a próxima. Isto torna fácil identificar qual regra causou um problema.

Verificar Registos de Erro do Apache

Os registos de erro do Apache são a sua ferramenta de diagnóstico principal:

# Ubuntu/Debian
tail -f /var/log/apache2/error.log

# CentOS/RHEL
tail -f /var/log/httpd/error_log

Comentar Regras Temporariamente

Utilize o carácter # para comentar regras que pretende desativar sem eliminar:

# RewriteRule ^old-page$ /new-page [R=301,L]

Testar Redirecionamentos com curl

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

Utilizar um Testador de .htaccess Online

Várias ferramentas online gratuitas permitem-lhe testar regras de reescrita .htaccess contra URLs de amostra antes de as implementar no seu servidor em direto.

.htaccess em Diferentes Ambientes de Alojamento

A disponibilidade e comportamento de .htaccess depende do seu ambiente de alojamento:

Tipo de AlojamentoSuporte .htaccessNotas
Alojamento Partilhado✅ Suporte CompletoTipicamente a única forma de configurar Apache
Alojamento VPS✅ Suporte CompletoPode também editar httpd.conf diretamente para melhor desempenho
Servidores Dedicados✅ Suporte CompletoAcesso root completo; considere mover regras para configuração principal
Servidores Nginx❌ Não SuportadoNginx utiliza um sistema de configuração diferente

Se está num VPS com cPanel, pode gerir muitas funções .htaccess diretamente através da interface cPanel, incluindo redirecionamentos, proteção contra hotlink e privacidade de diretório — sem editar o ficheiro manualmente.

Perguntas Frequentes Sobre .htaccess

O .htaccess funciona em Nginx?

Não. .htaccess é exclusivo do Apache HTTP Server. Nginx utiliza um modelo de configuração diferente onde todas as regras são definidas em ficheiros de configuração de bloco de servidor. Se está a migrar de Apache para Nginx, terá de converter as suas regras .htaccess para sintaxe de bloco ###PPT_NO

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar