Como usar .htaccess para reescrever URLs
Bem-vindo! Aqui você vai aprender a usar o arquivo .htaccess para deixar suas URLs mais bonitas, amigáveis e melhor posicionadas no Google. Sem medo — o passo a passo é simples! 😊
O que é .htaccess?
O arquivo .htaccess é um arquivo de configuração que fica no servidor e permite que você controle como as URLs do seu site se comportam. Por exemplo, você pode transformar uma URL cheia (seusite.com.br/produtos.php?id=123) em algo bem mais limpo (seusite.com.br/produtos/123).
Pense no .htaccess como um "porteiro" do seu site: ele intercepta cada requisição e decide o que fazer com ela — redirecionar, reescrever, bloquear ou permitir. Legal, né?
Pré-requisitos
- Ter acesso ao cPanel da sua hospedagem (você recebeu as credenciais por e-mail).
- Acesso ao Gerenciador de Arquivos ou ao seu cliente FTP.
- Noções básicas de edição de texto (vamos usar o editor de código do cPanel).
Passo 1: Acessar o Gerenciador de Arquivos
- Abra o seu painel de controle do cPanel em
painel.gehost.com.br(ou o URL que você recebeu). - Faça login com suas credenciais.
- Procure por "Gerenciador de Arquivos" e clique nele.
- Você vai ver as pastas do seu site. Navegue até a pasta public_html (é ali que está o site "visível" na internet).
- Se o seu site fica em uma subpasta (ex.:
public_html/meusite/), entre nela.
Passo 2: Criar ou editar o arquivo .htaccess
Procure por um arquivo chamado .htaccess na pasta. Se não existir, vamos criar:
- No canto direito do gerenciador de arquivos, clique em "Arquivo" → "Criar novo arquivo".
- Dê o nome exato:
.htaccess(sim, com o ponto na frente). - Clique em "Criar".
- Agora, clique com o botão direito no arquivo novo e escolha "Editar código" (ou clique 2x nele).
Se o arquivo já existe, basta clicar nele com o botão direito e escolher "Editar código". ⚠️ Importante: faça uma cópia de segurança do arquivo original antes de mexer — é só clicar com o direito e escolher "Copiar".
Passo 3: Adicionar as regras de reescrita
Agora vem a mágica! Abaixo estão os exemplos mais comuns de reescrita de URL. Copie o código que se encaixa no seu caso e cole no editor:
🎯 Exemplo 1: Remover .php das URLs
Quer transformar seusite.com.br/produtos.php em seusite.com.br/produtos? Cole isto:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)$ $1.php [L]
</IfModule>
O que significa: a regra procura por URLs que parecem um arquivo .php, mas sem a extensão — e automaticamente adiciona ".php" por trás dos panos. O site mostra uma URL limpa, mas o servidor roda o arquivo .php normal.
🎯 Exemplo 2: Reescrever com parâmetros (ex.: /produtos/123 → /produtos.php?id=123)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^produtos/([0-9]+)/?$ produtos.php?id=$1 [QSA,L]
</IfModule>
O que significa: quando alguém acessa /produtos/123, o servidor roda produtos.php?id=123 nos bastidores. O [0-9]+ captura o número; o $1 passa esse número como parâmetro.
🎯 Exemplo 3: Redirecionar HTTP para HTTPS (deixar o site seguro)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Dica: esse é quase obrigatório hoje em dia — faz o site sempre usar HTTPS (o "cadeado" de segurança). Google adora e melhora seu SEO!
🎯 Exemplo 4: Remover a barra de índice (index.php / index.html)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Útil para: frameworks como Laravel, CodeIgniter e WordPress. O site redireciona tudo para o index.php, que distribui as requisições corretamente.
Passo 4: Salvar e testar
- Após colar o código certo, clique em "Salvar" (ou "Save Changes").
- Feche o editor.
- Abra o navegador e acesse o seu site com a URL reescrita (ex.:
seusite.com.br/produtos). - Se funcionar, ótimo! Se não, verifique se o caminho dos arquivos está certo ou se o arquivo .php realmente existe.
⚠️ Dicas de segurança e boas práticas
🔒 Nunca deixe informações sensíveis na URL. URLs são visíveis no histórico do navegador, logs do servidor e barra de endereços — não passe senhas, tokens ou dados privados lá.
💾 Sempre faça backup. Antes de mexer no .htaccess, clique com o direito, copie o arquivo e guarde uma cópia. Se der ruim, é só restaurar.
🧪 Teste em staging (ou um subdomínio). Se o seu site é crítico, teste as mudanças num ambiente de teste antes de aplicar na versão ao vivo.
⏱️ Limpe o cache. Após editar, pode ser que o navegador ainda mostre a URL antiga em cache. Faça Ctrl+Shift+Del (limpar histórico + cache) e tente de novo.
🆘 Deu erro? Aqui está como resolver
"Erro 500 - Internal Server Error"
- Geralmente é sintaxe errada no .htaccess. Verifique se não há caracteres estranhos ou linhas incompletas.
- Tente comentar a regra adicionando
#no início da linha (ex.:# RewriteRule...) e teste de novo. - Se o erro persistir, delete o .htaccess inteiro, salve, e tente uma regra de cada vez.
"A URL não está sendo reescrita"
- Verifique se o mod_rewrite está ativo no servidor (geralmente é, na GeHost). Se achar que não, abra um ticket com a gente — a gente ativa!
- Confira o caminho dos arquivos — se o arquivo .php está em
/subpasta/, as regras precisam levar em conta isso. - Limpe o cache do navegador (Ctrl+Shift+Del).
"Redirecionamento em loop (a página não carrega)"
- Acontece quando uma regra redireciona pra outra regra, que redireciona de volta. Revise se há duas regras conflitantes (ex.: uma tira a barra, outra adiciona).
- Use
RewriteCond %{REQUEST_FILENAME} !-feRewriteCond %{REQUEST_FILENAME} !-dpara evitar regredir arquivos/pastas reais.
📚 Próximos passos
Agora que você domina o básico, pode explorar regras mais avançadas (redirecionamentos 301, bloqueio de IPs, compressão, cache). Mas por enquanto, com o que você aprendeu aqui, seu site já vai estar bem mais profissional!
Dúvida ou algo não funcionou? É só chamar a gente no suporte. Estamos sempre por aqui! 😊