J'essaie de configurer 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 ne pouvais pas obtenir que cela fonctionne, alors j'ai essayé d'activer mod_rewrite, mais le message "Réécriture de module est déjà activé".
Pourquoi ça ne fonctionne pas correctement? Merci! J'utilise Ubuntu Precise 12.04 et Apache 2.2.22. (Vérifié pour les mises à jour)
EDIT: Quelques détails supplémentaires, il s’agit d’une construction vagabonde de PuPHPet, la réécriture doit être activée.
Vous devez autoriser le remplacement.
<Directory "/path/to/document/root/">
AllowOverride All
Allow from All
</Directory>
Tout d’abord, définissez votre configuration httpd à ceci (le chemin peut être différent. Dans mon ubuntu, il est placé dans/etc/Apache2/sites-available/default):
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
Après cela, vous devriez activer mod_rewrite avec cette commande:
Sudo a2enmod rewrite
Le dernier, redémarrez votre Apache service:
Sudo service Apache2 restart
Pour vous en assurer, vous pouvez le vérifier à nouveau à partir de phpinfo dans Configuration> Apache2handler> Modules chargés il doit être écrit mod_rewrite
et cela signifie que mod_rewrite est activé.
J'ai eu le même problème, mais les autres réponses ne m'ont pas aidé. Cette ligne au début de .htaccess
a résolu mon problème:
Options +FollowSymLinks -MultiViews