mod_rewrite está ativado, mas não está funcionando

14

Estou tentando configurar uma biblioteca de roteamento PHP. Eles dão esse exemplo para um arquivo .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

Eu não consegui fazer isso funcionar, então tentei ativar o mod_rewrite, mas ele diz "Reescreva o módulo já ativado".

Por que não está funcionando corretamente? Obrigado! Estou executando o Ubuntu Precise 12.04 e o apache2.2.22. (Verificado por quaisquer atualizações)

EDIT: Mais alguns detalhes, é uma compilação vagrant do PuPHPet, a reescrita deve ser ativada.

    
por freddinator 17.02.2014 / 11:56

3 respostas

28

Você precisa permitir a sobregravação.

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>
    
por rechengehirn 17.02.2014 / 12:49
13

Primeiro de tudo, defina sua configuração httpd para isso (o caminho pode diferir um do outro. No meu Ubuntu ele é colocado em / etc / apache2 / sites-available / default):

DocumentRoot /var/www

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

Depois disso, você deve ativar o mod_rewrite com este comando:

sudo a2enmod rewrite

O último, reinicie seu serviço do apache :

sudo service apache2 restart

Para garantir isso, você pode verificá-lo novamente em phpinfo em Configuração > apache2handler > Módulos carregados devem estar escritos mod_rewrite e isso significa que o mod_rewrite está habilitado.

    
por metamorph 14.05.2014 / 06:38
0

Eu tive o problema semelhante, mas as outras respostas não me ajudaram. Esta linha no começo de .htaccess resolveu meu problema:

Options +FollowSymLinks -MultiViews
    
por Damjan Pavlica 28.08.2018 / 20:39