mod_rewrite est activé, mais ne fonctionne pas


19

J'essaie de mettre en place une bibliothèque de routage PHP.Ils donnent cet exemple pour un fichier .htaccess:

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

Je n'ai pas réussi à faire fonctionner cela, j'ai donc essayé d'activer mod_rewrite, mais il indique "Réécriture de module déjà activée".

Pourquoi ne fonctionne-t-il pas correctement?Merci!J'utilise Ubuntu Precise 12.04 et apache2.2.22.(Vérifié pour toutes les mises à jour)

EDIT: Encore quelques détails, c'est une compilation de PuPHPet vagrant, la réécriture devrait être activée.

36

You need to allow the overwrite.

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>

17

First of all, set your httpd configuration to this (the path may differ with one another. In my ubuntu it's placed at /etc/apache2/sites-available/default):

DocumentRoot /var/www

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

After that, you should enable mod_rewrite with this command:

sudo a2enmod rewrite

The last one, restart your apache service:

sudo service apache2 restart

To ensure that, you can check it again from phpinfo in Configuration > apache2handler > Loaded Modules there must be written mod_rewrite and it means mod_rewrite is enabled.


2

I had the similar problem, but the other answers did not helped me. This line at the begining of .htaccess solved my problem:

Options +FollowSymLinks -MultiViews