|
||
|
|
|
Avaliação:
![]() ![]() ![]() ![]() | Publicado em: 17/10/2006Criando urls amigáveis com o mod_rewrite do Apache
José de Menezes é formado em Ciência da Computação pela UFMG, empresário e ex-atleta profissional. Possui interesses em desenvolvimento web e webdesign.
Hoje em dia é muito comum o uso de scripts que rodam no servidor (server-side) para gerar conteúdo dinâmico em páginas web. Os exemplos acima são fictícios mas, com certeza você já se deparou com URLs bem parecidas com essas, inclusive em sites muito conhecidos. Qual o problema dessas URLs?A princípio você pode pensar que não há problema algum com essas URLs. Mas pense um segundo. Você consegue decorar uma URL desse tipo? Além do problema da complexidade, essas URLs geram outros problemas:
Expor a tecnologia usada para fazer um site pode ser um problema de segurança e, hoje em dia, qualquer cuidado com segurança, mesmo que pequeno, é importante. E, além disso, com a mudança da tecnologia usada, todos os links e bookmarks que existam para o seu site serão quebrados, e isso não é nem um pouco interessante. O que fazer então?A solução que vou apresentar serve para os usuários do servidor web apache. É necessário que esteja habilitado no servidor o módulo mod_rewrite e que seja possível o uso de arquivos htaccess. A solução é simples: mapear as URLs reais para URLs “virtuais”, mais fáceis de compreender e indexar, e independentes da tecnologia utilizada. É necessário um pouco de conhecimento de expressões regulares. O que é o mod_rewritemod_rewrite é um módulo do apache que realiza a reescrita transparente de URLs usando expressões regulares. É como se fosse um redirecionamento, só que o usuário não fica sabendo que a página foi reescrita, já que o endereço na barra de endereços do browser não muda e nenhum cabeçalho HTTP 3xx é enviado. Mãos a obraO primeiro passo é criar um arquivo htaccess no diretório raiz do seu site (DocumentRoot e acrescentar a linha: Agora vamos ? reescrita da URL. Vamos utilizar os exemplos acima. São exemplos simples, mas meu intuito é mostrar o funcionamento da técnica. Você pode usar a sua criatividade para fazer o que quiser e o que for necessário para o seu caso. Primeiro exemplo: index.php?s=web&p=1 Analisando esta URL podemos perceber que temos duas variáveis (’s’ e ‘p’), provavelmente referentes a seção e página, respectivamente. Vamos transformá-la em: /web/1 A regra ficaria assim: Vamos entender a linha acima: ^(.+)/?([0-9]*)/?$: a url “virtual”, ou seja, a url que será usada nos links para esta página. Para que entende um pouco de expressões regulares, esta expressão é bem simples de entender, vamos dissecá-la: ([0-9])*: qualquer quantidade de dígitos (números), ou seja, zero ou mais. Exemplos do resultado desta regra: /web/1 ou /web/1/ = /index.php?s=web&p=1 Vamos a mais um exemplo: Assim, você poderia acessar a URL index.php?section=artigos&data=09-08-2004 pela URL “virtual” artigos/09/08/2004, bem mais amigável do que a primeira. Não apenas páginas dinâmicas podem ser reescritas por meio do mod_rewrite. Conteúdo estático também. Um exemplo: usando a regra: ConclusãoO intuito deste artigo foi apresentar o mod_rewrite e mostrar como criar URLs mais amigáveis, tanto para o usuário quanto para os mecanismos de busca. Você pode fazer praticamente qualquer mapeamento de URLs utilizando o mod_rewrite, o que você precisa é identificar um padrão nas URLs do seu site e criar as regras de reescrita. O limite é o da sua criatividade. Autor e créditos da matéria: Bruno Torres Arquivos anexos ao artigo
Links relacionados
Eduardo <caduuu@gmail.com>
Informações úteis num texto muito bem redigido...
Parabéns, José! ![]() ![]() ![]() ![]() ![]() Rodrigo
Devia ao menos ter colocado a fonte do artigo, né?
Ou tá querendo que as pessoas acreditem que foi tu quem o fez? ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|