Já a algum tempo eu tenho o apache instalado no meu notebook com o Ubuntu 7.04 com o mod_rewrite habilitado, e nos casos em que eu estava trabalhando estava tudo aparentemente funcionando bem, até hoje, quando eu iniciei a implementação de um projeto pessoal usando o Zend Framework.
Não vou entrar em muitos detalhes a respeito desse projeto ainda para não estragar a surpresa, mas eu estou criando o projeto todo modularizado no Zend Framework, onde cada módulo pode ser usado de forma independente mas compondo o mesmo sistema.
Aí que o mod_rewrite começou a me dar dor de cabeça, porque ele não estava re-escrevendo a url da forma devida gerando resultados completamente inesperados.
Para me certificar que o código estava correto, eu enviei o esqueleto do projeto para o servidor de produção e lá tudo funcionou corretamente o que me fez crêr que o problema estava mesmo na re-escrita da url.
Depois de quebrar a cabeça escrevendo um monte de arquivos .htaccess diferentes, eu descobri que o problema se deu porque quando eu instalei o apache com suporte a mod_rewrite eu me esqueci de mudar o valor de uma diretiva para All. Simples assim, e após fazê-lo tudo passou a funcionar corretamente.
Por isso vou deixar aqui um pequeno passo-a-passo para quem quiser instalar o suporte à reescrita de url no ubuntu (e acho que serve para outros sabores de *nix também) não passar pelo mesmo problema.
Vamos levar em conta que o Apache já está devidamente instalado, ok?
Vamos lá:
1. Habilitando o mod_rewrite:
# sudo a2enmod rewrite
2. Edite o arquivo de configuração:
# sudo gedit /etc/apache2/sites-enabled default
Mude a linha 12 de: AllowOverride none
para: AllowOverride all
Salve e feche o arquivo.
3. Por fim, reinicie o apache
# sudo /etc/init.d/apache2 restart
Pronto! Agora é meter a mão no código.
[]s
Post date: 12/10/2007