URL Amigáveis com mod_rewrite e .htaccess

O mod_rewrite e o .htaccess são usados em conjunto para que os sites dinámicos possam apresentar URLs (endereços das páginas) mais amigáveis a quem visualiza o site e permitir a optimização para a procura pelos motores de busca (SEO).

A maior parte dos sites actualmente possui conteúdo dinâmico, normalmente criado a partir de valores de variáveis passados de alguma forma para uma página, surgindo urls do tipo index.php?id=53&seccao=21&autor=2

Este tipo de URL dificulta a memorização e pode mesmo causar problemas de segurança, pois expõe de certo modo informação do modo como o conteúdo é gerado.

Para que seja possível a sua implementação é necessário que o Apache já possua o módulo mod_rewrite. Assim, deste modo, consegue-se mascarar as informações sobre variáveis passadas como parâmetro.

Configuração do Apache:

1. No arquivo httpd.conf, localize as seguintes linhas
#LoadModule rewrite_module modules/mod_rewrite.so
#AddModule mod_rewrite.c
Retire o comentário (#) das duas linhas

2. Procure
Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

Mude de None para All, ficando assim
Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

3. Reinicie o Apache
4. Em seguida, crie um ficheiro, num editor de texto (em modo plain text), chamado .htaccess e guarde na raiz do seu directório web do servidor.
5. No arquivo .htaccess, insira o seguinte código:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .(/)?$ /index.php
</IfModule>

Linha 1 verifica se o mod_rewrite está activo, caso esteja, executa o bloco.
Linha 2 activa o mod_rewrite.
Linha 3 indica qual o directório base de todo conteúdo.
Linha 4 verifica se a url digitada é um ficheiro, caso seja para aqui.
Linha 5 verifica se a url digitada é um directório, caso seja para aqui.
Linha 6 define a expressão regular que será usada para os caminhos.

6. Salve o arquivo .htaccess.

Ler também usando o .htaccess num servidor Apache

1 comentário em “URL Amigáveis com mod_rewrite e .htaccess”

Comentários fechados.