» Para que serve?

O módulo rewrite serve para reescrever a URL, deixando-a mais amigável. Por exemplo, suponhamos que tenhamos uma página http://ogordo.com/exemplo.php?n=qualquer-coisa.php, com o mod_rewrite funcionando e criando um arquivo .htaccess com regras específicas, conseguimos deixar a mesma URL dessa forma: http://ogordo.com/qualquer-coisa.html.

Percebeu que na URL original, a extensão era .php e depois das regras aplicadas com o mod_rewrite ficou .html. Pois é, não existe nenhuma página .html. O que aconteceu, resumidamente, é que ela foi criada “dinamicamente” com essa extensão, ou se você quiser, foi apenas substituído a extensão visualmente.

Além de tudo isso, ela ajuda no posicionamento do seu site em buscadores, como o Google, pois o robo consegue ler com mais facilidade.


» Botando mão na massa

Bem, chega de lero-lero e vamos fazer logo o que importa.

[1] Para ver se esse módulo já está instalado, digite o seguinte comando no terminal:

sudo ls /etc/apache2/mods-available

E na lista que aparecer, procure pelo rewrite.load. Se não encontrar, você não nem o módulo instalado na máquina. Para isso, basta você instala-lo com o seguinte comando:

sudo a2enmod rewrite

[2] Agora que está instalado, você irá copiar o arquivo que antes tentamos localizar para a pasta mods-enabled, já que é nela, como o próprio nome diz, que ficam os módulos habilitados. Faça como quiser, eu prefiro fazer pelo terminal:

sudo cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/

O cp (CoPy) faz com que se copie um arquivo e cole em outro.

[3] Agora vamos editar o arquivo, abrindo-o em qualquer editor:

sudo gedit /etc/apache2/sites-available/default

Localize a parte que a parte que contém o DocumentRoot /var/www. Abaixo dele você vai encontra duas tags . Na segunda, abaixo da linha Options Indexes FollowSymLinks MultiViews, terá um AllowOverride None. Mude isso para AllowOverride All.

[4] Pronto, agora para testar, basta reiniciar o servidor Apache:

sudo /etc/init.d/apache2 restart

Abraços!