Apache: Usando URL amigáveis – Básico

Quando desenvolvemos sites ou sistemas web dinâmicos nos deparamos com o grande uso de variáveis GET , que refletem em URLs nada amigáveis para os usuários e os sistemas de buscas. Um exemplo simples seria a seguinte URL

http://dominio.com.br/index.php?page=contato

Essa URL que tem como função nos levar a uma página de contato é de difícil acesso caso o usuário queira acessar diretamente a página.

Para solucionar esse problema é possível implementar em seu site ou sistema web as URL Amigáveis, que são URL mais simples que escondem todas as declarações de variáveis GET, por exemplo o caso anterior com URL amigável ficaria assim

http://dominio.com.br/contato

Ficando assim mais acessível para o usuário e seguindo o padrão exigido pelos sistemas de busca.

Como acontece

Quando tentamos acessar um site pelo navegador, exemplo http://dominio.com.br/index.php?page=contato, é feita uma requisição no servidor pedindo o resultado do endereço /index.php?page=contato e o servidor utiliza regras internas para identificar esse endereço, no caso as regras padrões buscam o endereço direto (index.php) com as variáveis GET definidas (page=contato) e o processam retornando o conteúdo processado.

As URLs amigaveis são basicamente novas regras que o servidor vai considerar quando é feito uma requisição, ou seja podemos definir que quando seja feita a requisição /contato (http://dominio.com.br/contato) ele processe o arquivo index.php com a variável GET page = contato e retorne o resultado desse processo, ou seja a nova regra determina que a página de processamento padrão será o index.php e o que estiver depois de  dominio.com.br/ será o valor da variável GET page.

Como usar

Para podermos usar as URLs amigáveis primeiramente precisamos habilitar o modulo do apache que permite a reescrita das rotas de acesso, o modulo é o mod_rewrite, para habilitar-lo basta fazer

# a2enmod rewrite

depois reinicie o servidor apache

#/etc/init.d/apache2 restart

Com o modulo habilitado dentro do diretório raiz da página web crie um arquivo .htaccess

$ touch .htaccess

o arquivo .htaccess é um arquivo de configuração e acesso do apache, eles são lidos sempre que você tenta acessar algum conteúdo de dentro da pasta onde ele se encontra, nesse arquivo pode se definir bloqueios, redirecionamento e reescrita de URL que será o que utilizaremos.

Agora basta escrevermos no arquivo .htaccess as novas regras, vamos criar a regra para o exemplo apresentado em cima, vou colocar o conteúdo do .htaccess direto e depois explico cada linha

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteBase /

	RewriteRule ^contato/?$ /index.php?page=contato [NC,L]
</IfModule>

Vamos entender o que cada linha faz:

Nas linhas 1 e 6 se encontra o início e o final da tag IfModule, essa tag faz com que todo o conteúdo dentro dela seja executado se o modulo descrito estiver ativado, no nosso caso o mod_rewrite.

Na linha 2 ativamos o recurso de reescrita de regras com RewriteEngine On.

Na linha 3 determinamos o diretório que será acessado pela web, no nosso caso como estamos acessando direto da raiz ( http://localhost/ ) a nossa linha ficou assim RewriteBase / mas se estivéssemos acessando um diretório interno ( http://localhost/teste/ ) ficaria assim RewriteBase /teste/

Finalmente na linha 5 criamos nossa nova regra iniciamos a linha com o comando RewriteRule que faz com que o apache identifique que uma nova regra vai ser definida, em seguida colocamos uma expressão regular para validar a nova URL  ^contato/?$, os símbolos ^ e $ servem para identificar o início e o fim da expressão regular respectivamente. Quando fazemos /? dizemos que a nova URL pode ter ou não no final uma /, para entender melhor as expressões regulares este site tem um bom material.

Em seguida da expressão regular que valida a nova URL definimos o destino que o apache vai ser direcionado, no caso /index.php?page=contato em seguida determinamos algumas flags da nova regra, no caso [NC,L], a flag NC (no case) determina que não hávera diferenciação de maiuscula e minuscula, e a flag L (last) determina que essa regra vai ser a ultima.

Bem, esse é um exemplo bem simples de como utilizar as URLs amigáveis, farei um próximo post com um uso mais avançado abordando mais as expressões regulares.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*


*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>