Apache2 RewriteRule não está funcionando

0

Eu tenho isso no meu arquivo /srv/www/htdocs/.htaccess:

RewriteEngine On #turn on rewite engine
RewriteRule ^schedule/?$ index.php?page=schedule [NC,L]
RewriteRule ^music/?$ index.php?page=music [NC,L]
RewriteRule ^thefamily/?$ index.php?page=thefamily [NC,L]
RewriteRule ^contact/?$ index.php?page=contact [NC,L]

Eu vou para http://localhost/contact e obtenho o erro 404. No meu servidor remoto, no entanto, esse código em .htaccess funciona bem. Como faço para que o RewriteRule funcione no Apache2? Eu pesquisei e li que esse comando faria com que funcionasse: # a2enmod rewrite , mas não [eu reiniciei o apache2 também].

Eu até adicionei RewriteEngine On ao meu arquivo / etc / apache2 / sites-available / default [Por dentro do VirtualHost], mas isso também não resolveu.

Eu estou usando o Ubuntu 11.04. Qualquer ajuda apreciada, obrigado!

    
por Matt 03.05.2011 / 17:59

1 resposta

2

O virtualhost padrão do apache configurado no debian (e suponho que o Ubuntu) não lê arquivos .htaccess. Para ativá-lo, abra o arquivo de configuração padrão (/ etc / apache2 / sites-available / default), procure por algo semelhante a:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

Altere a linha "AllowOverride None" para "AllowOverride All". Recarregue ou reinicie o apache (/etc/init.d/apache reload). AllowOverride restringe as diretivas que podem ser colocadas em um arquivo .htaccess, quando ele é definido como Nenhum, o apache nunca analisa o arquivo.

    
por 03.05.2011 / 18:19