mod_rewrite ist aktiviert, funktioniert aber nicht


17

Ich versuche, eine PHP-Routing-Bibliothek einzurichten. Sie geben das folgende Beispiel für eine .htaccess-Datei:

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

Ich konnte das nicht zum Laufen bringen, also habe ich versucht, mod_rewrite zu aktivieren, aber es steht "Module rewrite already enabled".

Warum funktioniert es nicht richtig? Vielen Dank! Ich verwende Ubuntu Precise 12.04 und Apache2.2.22. (Auf Updates überprüft)

BEARBEITEN: Noch ein paar Details, es ist ein PuPHPet-Vagabund, das Neuschreiben sollte aktiviert sein.

Antworten:


33

Sie müssen das Überschreiben zulassen.

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

5
Das ist unnötig freizügig. Nur AllowOverrideist für die betreffende Konfiguration erforderlich. Allow from Allhat nichts mit der Frage zu tun und ist möglicherweise nicht für die Umgebung von @ randomdev geeignet.
Mark

1
<Directory "/path/to/document/root/">Ich habe vergessen, /path/to/document/root/zu meinem Projektstamm zu wechseln. Danke!
Abhishek

16

Zunächst einmal stellen Sie Ihre httpd - Konfiguration auf diese (der Pfad miteinander unterscheiden In meinem ubuntu es in / etc / apache2 / sites-available / default gesetzt wird .):

DocumentRoot /var/www

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

Danach sollten Sie mod_rewrite mit diesem Befehl aktivieren :

sudo a2enmod rewrite

Der letzte, starten Sie Ihren Apache- Dienst neu:

sudo service apache2 restart

Um dies zu gewährleisten, können Sie es erneut in phpinfo unter Konfiguration> apache2handler> Geladene Module überprüfen. Es muss geschrieben sein mod_rewriteund dies bedeutet, dass mod_rewrite aktiviert ist.


Sollte dies in einem virtuellen Host-Element sein?
JJXTRA

Sie können einige Beispiele in Apache Virtual Host Example
metamorph

1

Ich hatte das ähnliche Problem, aber die anderen Antworten haben mir nicht geholfen. Diese Zeile am Anfang .htaccesslöste mein Problem:

Options +FollowSymLinks -MultiViews
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.