Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

Implementando URL Amigável no Apache com .htaccess e PHP

Post Views 4,478 views
Reading time 5 minutes

Sem dúvida, o SEO (Search Engine Optimization) é um dos principais fatores de estudo dos desenvolvedores Web atualmente, uma vez que ele é responsável diretamente pela forma como o website atrairá novos visitantes e pelo posicionamento do mesmo em mecanismos de busca como o Google, Yahoo, Bing e outros.

Há algum tempo atrás, os desenvolvedores Web não tinham preocupação com a semântica da URL de suas páginas e era normal encontrar algo como http://www.site.com.br/noticia.php?id=587. Com o avanço do SEO e o aprimoramento de ferramentas de busca, foi criado o conceito de url amigável, que consiste em URL’s no formato http://www.site.com.br/noticia/587/url-semantica-vira-tendendia-no-mercado-web ou mesmo http://www.site.com.br/url-semantica-vira-tendendia-no-mercado-web.

Além de fazer mais sentido para o próprio usuário, que pode ter uma idéia do conteúdo do link antes mesmo de clicar, as ferramentas de busca podem utilizar a própria URL para já iniciar o processo de indexação o conteúdo e comparar a URL ao título da página e à tag H1 para verificar se todos estão falando sobre o mesmo assunto.

Neste post irei ajudá-los a utilizar esse recursos em seus projetos.

Preparando o Direcionando das requisições

A primeira parte da implementação de URL amigável é direcionar as requisições para um arquivo do nosso sistema tratar essas requisições, que, na teoria não existem (não existe um arquivo chamado url-semantica-vira-tendendia-no-mercado-web no seu projeto)

No código abaixo, eu prefixei algumas extensões para não tratar usando o arquivo url_amigavel.php, que são extensões de arquivos e que certamente não utilizam url amigável. Nesse caso, caso algum arquivo nessas extensões não exista, eles serão tratados utilizando o ErrorDocument, que expliquei no post Redirecionamento de erros HTTP utilizando o .htaccess

.htaccess

Preparando o Tratamento das requisições

Nesta etapa, o cliente terá feito a requisição para a nossa URL amigável, que terá sido direcionada para o nosso arquivo PHP que irá tratar a URL.

url_amigavel.php

Exemplo de url: www.seusite.com.br/subcategoria/20/tv-lcd
Exemplo de retorno: Array ( [0] => subcategoria [1] => 20 [2] => tv-lcd )

Exibindo o conteúdo nos arquivos de rota

No caso do exemplo acima, o arquivo subcategoria.php é o meu arquivo de rota que foi chamado através do arquivo url_amigavel.php que irá consultar o banco de dados e exibir as informações no navegador para o usuário. Vejamos como o nosso arquivo irá identificar os parâmetros informados:

subcategoria.php

Gerando a URL Amigável para exibir no site

Depois que a estrutura já está toda apta para trabalhar com URL amigável, vem a parte principal, que é alterar as URL’s do seu website pelo formato de URL amigável.

Caso você desenvolva utilizando o padrão de projeto MVC, isso não será muito trabalhoso. Basta criar uma function em cada um de seus models com o código similar a esse, onde a URL é composta pelo ID do objeto e o nome (que pode ser titulo, descricao, enfim… o que você utiliza no seu projeto para dar nome ao objeto)

Subcategoria.php (Model)

Caso você ainda desenvolva de forma estruturada (Estude Orientação a Objetos e MVC), você terá que criar uma function e alterar todo o seu site para que sempre que for escrever uma URL no seu HTML final, ele utilize essa função para isso.

Exemplo:

Função utilizada para formatar o nome de forma que fique no formato de URL Amigável

E a URL www.seusite.com.br/tv-lcd ?

Neste post, eu mencionei um tipo de URL amigável muito comum também, que é o formato www.seusite.com.br/tv-lcd por exemplo. Esse tipo de URL amigável é um pouco mais complicado de implementar, uma vez que não foi informado um ID na URL para você consultar direto no banco de dados, apenas do texto.

Para essa implementação, precisaremos criar um campo no banco de dados para guardar a URL amigável gerada, permitindo consulta nossa base de dados através do título (tv-lcd) e identificando assim, qual URL esse título está associado.

Normalmente, é criada uma tabela para isso, contendo as URL amigáveis e as respectivas páginas que serão exibidas (utilizando include ou require no PHP), pois existem vários tipos de conteúdos diferentes (subcategorias, produtos, categorias, noticias, etc) e essa abordagem não ficaria restrita a apenas um tipo de conteúdo.

Uma outra abordagem (mais fácil), seria incluir o ID e o tipo do conteúdo ao final da URL, no formato www.seusite.com.br/tv-lcd-subcategoria-20 e na hora de tratar a requisição do seu arquivo subcategoria.php você faria essa alteração:

Utilizando o que você aprendeu nesse post, você consegue implementar isso tranquilamente. Caso tenha dúvidas, deixe o seu comentário que irei respondê-lo.

Considerações finais

Implementar URL amigável em seu projeto, não será algo simples e rápido, como algumas alterações de SEO geralmente são. É realmente um pouco trabalho e custoso, principalmente se você não está acostumado com o paradigma da orientação a objetos e o padrão de projetos MVC.

O conceito de URL amigável é extremamente importante para o SEO, e é cada vez mais comum encontrar websites que utilizem esse conceito. Quem não aderiu a isso ainda (URL amigável já é uma realidade há alguns anos), já está bem atrás dos concorrentes, então não perca tempo.