• Mostrando resultados da busca por {{ posts_busca["corrected"] }} {{termo_busca}}
  • {{post.title}}
  • Não foram encontrados resultados para {{ posts_busca["corrected"] }} {{termo_busca}}

Como regravar URLs através do .htaccess (Apache)

André Brasil - Time de Atendimento da KingHost

Regravar urls do seu site é um passo importante para garantir um melhor posicionamento nos motores de busca, além de ser visualmente melhor.

Através do uso de URLs amigáveis, otimizamos os links do site tornando-os mais fáceis de utilizar e lembrar. Isto acontece pois podemos associar o texto do endereço digitado com o conteúdo das páginas que o site oferece para navegar. Com isto em mente, podemos perceber que links amigáveis aumentam a confiança dos usuários no site já que eles navegam com uma intuição maior a respeito do que estão acessando.

Por outro lado, escolher o texto do endereço online pode se tratar de uma prática de segurança, onde se “esconde” o caminho real de certa página na aplicação. Por fim, a escolha por links amigáveis é também uma prática de SEO (Search Engine Optimization). Utilizando termos chave no seu endereço, visto que são palavras e não códigos estranhos, você estará automaticamente melhorando a indexação do site no Google.

Importante: Em ambiente de hospedagem com servidor web Nginx e Lighttpd, a regravação de URLs é feita através do Painel de Controle.

Comparação de endereços com e sem regravação

Abaixo há 3 exemplos de endereços. A primeira coluna exibe os endereços sem regravação de URL, a segunda coluna é o resultado de uma regravação de URL.

Sem regravação de URLCom regravação de URL
http://www.nomedosite.com.br/contato.phphttp://www.nomedosite.com.br/contato/
http://www.nomedosite.com.br/produtos.php?categoria=7http://www.nomedosite.com.br/produtos/luvas/
http://www.nomedosite.com.br/mundo.php?id=2http://www.nomedosite.com.br/mundo/nome-do-post/2/

Funcionamento de uma requisição (de maneira bem simplificada)

O visitante digita uma URL (Exemplo: http://nomedosite.com.br/contato.php) no navegador;
O navegador do visitante envia uma requisição para o servidor do site pedindo o resultado em HTML do endereço contato.php;
O servidor utiliza de regras internas para identificar esse endereço como pertencente ao arquivo contato.php;
O servidor então, executa o PHP e retorna o código HTML final (resultado) para o navegador do visitante.

Exemplo de regravação utilizando um arquivo .htaccess

Abaixo segue uma regra de regravação de URL realizada a partir de um arquivo .htaccess para facilitar o entendimento:

RewriteEngine On
RewriteRule ^contato/?$ /contato.php [NC,L]

Linha 1: O comando IfModule verifica se o mod_rewrite.c está ativo
Linha 2: Habilita o sistema de reescrita de URL
Linha 3: Aplicação da regra de regravação de URL
Linha 4: O comando IfModule encerra a regra e a verificação do módulo

ANÁLISE DA REGRA DE REWRITE

RewriteRule ^contato/?$ /contato.php [NC,L]

RewriteRule: Comando de reescrita de URL (diz para o servidor web qual linha deve ser verificada)
^contato/?$: É uma expressão regular usada para validar a URL
/contato.php: Informa ao servidor que arquivo atenderá a requisição (Formato da antiga URL)
[NC,L]: Flags – NoCase, sem diferenciação entre maiúsculas e minúsculas e Last, que força a utilização dessa única regra

Detalhes da expressão regular:
^: significa início
$: significa fim
/?: significa barra opcional (Exemplo: Acessar por http://www.dominio/contato ou http://www.dominio/contato/)


Documentação do mod_rewrite: Apache Module mod_rewrite

Esse artigo foi útil pra você?