Criando URL Amigáveis com PHP e htacess – Gustavo Fracisco
Criando URL Amigáveis com PHP e htacess
Atualmente com o SEO cada vez mais presente para mecanismos de busca e relevância de páginas, um ponto importante para otimização e também para uma melhor experiência do usuário é a chamada URL Amigável. Por exemplo, uma loja que exibe as informação de um produto teria uma URL assim:
A) http://www.minhaloja.com.br/produto.php?codigoProduto=1234 ou
B) http://www.minhaloja.com.br/produto.php?cod=produto-teste
C) http://www.minhaloja.com.br/categoria.php?categoria=27
Para os exemplos citados acima, eu poderia reescreve a URL da seguinte forma:
A) http://www.minhaloja.com.br/produto/1234
B) http://www.minhaloja.com.br/produto/produto-teste
C) http://www.minhaloja.com.br/categoria/acessorios
Além disso, essa técnica é útil para SEO para otimizarmos a palavra chave na URL. Dessa forma, uma URL comum seria:
D)http://www.meusite.com.br/pagina.php?page=375
D) http://www.meusite.com.br/desenvolvimento-de-sistemas
Para tal, vou mostrar como fazer o apontamento no arquivo .htacess e posteriormente ler o parâmetro com PHP.
Primeiramente, verifique se a reescrita de URL está habilitada em seu servidor. Uma vez habilitada, devemos escrever a regra de redirecionamento no arquivo .htaccess, ficando dessa forma:
#Exemplo A
RewriteRule ^produto/([0-9]+)$ produto.php?codigoProduto=$1
#Exemplo B
RewriteRule ^produto/([A-Za-z]+)$ produto.php?cod=$1
#Exemplo C
RewriteRule ^categoria/([0-9A-Za-z]+)$ categoria.php?categoria=$1
#Exemplo D
RewriteRule ^([0-9A-Za-z]+)$ pagina.php?page=$1
RewriteEngine On #Exemplo A RewriteRule ^produto/([0-9]+)$ produto.php?codigoProduto=$1 #Exemplo B RewriteRule ^produto/([A-Za-z]+)$ produto.php?cod=$1 #Exemplo C RewriteRule ^categoria/([0-9A-Za-z]+)$ categoria.php?categoria=$1 #Exemplo D RewriteRule ^([0-9A-Za-z]+)$ pagina.php?page=$1
Explicando o código, escrevemos a regra de reescrita começando com RewriteRule. Em seguida, utilizei expressões regulares para definir que tipos de caracteres devem ser inseridos para que a regra valha. Em seguida, eu escrevo qual é o arquivo que deve ser lido de fato e com o parâmetro que informei na url com $1. (Caso deseje mais parâmetros na url, a escrita será parecida, mas informando as variáveis incrementando da seguinte forma: $1, $2, $3 e assim por diante. é importante que escreva corretamente qual é o nome do parâmetro corretamente e também a ordem que receberá os parâmetros na URL.
Agora, no arquivo PHP a leitura é feita como um parâmetro GET comum, da seguinte forma:
arquivo PHP teste.php
$produto = $_GET['codigoProduto'];
$produto = $_GET['cod'];
//Exemplo D
echo $pagina
<?php //Exemplo A $produto = $_GET['codigoProduto']; echo $produto; //Exemplo B $produto = $_GET['cod']; echo $produto; //Exemplo C $categoria = $_GET['categoria']; echo $categoria; //Exemplo D $pagina = $_GET['page']; echo $pagina