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.
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 URL | Com regravação de URL |
http://www.nomedosite.com.br/contato.php | http://www.nomedosite.com.br/contato/ |
http://www.nomedosite.com.br/produtos.php?categoria=7 | http://www.nomedosite.com.br/produtos/luvas/ |
http://www.nomedosite.com.br/mundo.php?id=2 | http://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]
^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