Como ativar o mod_rewrite para o Apache 2.2

I'tenho uma nova instalação do Apache 2.2 na minha máquina Vista, tudo funciona bem, exceto o mod reescrito.

I'não comentei

LoadModule rewrite_module modules/mod_rewrite.s

mas nenhuma das minhas regras de reescrita funciona, mesmo as simples como

RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404

Todas as regras que eu'm estou usando estão trabalhando no meu hosting, então elas devem estar bem, então minha pergunta é, existe alguma coisa escondida na configuração do apache, que poderia bloquear a reescrita do mod?

Para a minha situação, eu tinha

RewriteEngine On

no meu `.htaccess', junto com o módulo sendo carregado, e não estava funcionando.

A solução para o meu problema foi editar a minha entrada vhost para inlcude

AllowOverride all

na seção `` para o site em questão.

Comentários (6)

Acabou de reparar que disse mod_rewrite.s em vez de mod_rewrite.so - espero que'seja um erro de digitação na sua pergunta e não no ficheiro httpd.conf! :)

I'estou mais habituado a usar o Apache no Linux, mas tive de fazer isto no outro dia.

Em primeiro lugar, dê uma olhada no seu diretório de instalação do Apache. (I'estará assumindo que você o instalou em "C:\Program Files" aqui)

Dê uma olhada na pasta: "C:\Program Files\Apache Software Foundation\Apache2.2\modules" e certifique-se de que há's um arquivo chamado mod_rewrite.so lá dentro. (Deve ser, it's fornecido como parte da instalação padrão.

A seguir, abra "C:\Program Files\Apache Software Foundation\Apache2.2\conf" e abra httpd.conf. Certifique-se de que a linha:

#LoadModule rewrite_module modules/mod_rewrite.so

é descomentado:

LoadModule rewrite_module modules/mod_rewrite.so

Além disso, se você quiser habilitar o RewriteEngine por padrão, você pode querer adicionar algo como


    RewriteEngine On

até ao fim do seu ficheiro httpd.conf.

Caso contrário, certifique-se de especificar

RewriteEngine On

em algum lugar no seu arquivo .htaccess.

Comentários (2)

Aí's obviamente mais de uma maneira de fazer isso, mas eu sugeriria usar o mais padrão:

ErrorDocument 404 /index.php?page=404
Comentários (0)