551 Stimmen

Wie man mod_rewrite für Apache 2.2 aktiviert

Ich habe eine frische Installation von Apache 2.2 auf meinem Vista-Rechner, alles funktioniert gut, außer Mod Rewrite.

Ich habe

LoadModule rewrite_module modules/mod_rewrite.s

entkommentiert, aber keiner meiner Rewrite-Regeln funktioniert, auch einfache wie

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

Alle Regeln, die ich verwende, funktionieren auf meinem Hosting, also sollten sie in Ordnung sein. Meine Frage ist also, ob es versteckte Einstellungen in der Apache-Konfiguration gibt, die Mod Rewrite blockieren könnten?

1 Stimmen

Eigentlich war das Problem, dass ich den falschen Pfad hatte, weil ${DOCUMENT_ROOT} mich zum Stammverzeichnis führte, was auf dem Hosting in Ordnung war, aber auf dem lokalen Rechner falsch war, also war das Problem nicht nur RewriteEngine On, was ich bereits hatte ..

0 Stimmen

Können Sie bitte die akzeptierte Antwort auf diese hier ändern? Der Autor der aktuellen akzeptierten Antwort hat zugegeben, dass sie nicht gut genug ist.

1 Stimmen

Wie man mod_rewrite in Ubuntu 12.04 LTS aktiviert (sollte auch in Debian funktionieren). Dies zeigt Installation UND Aktivierung, was die untenstehenden Tutorials überraschenderweise nicht tun :(

49voto

nickleefly Punkte 3663

Auf Ubuntu:

Führen Sie aus:

a2enmod rewrite

und dann:

service apache2 restart

mod_rewrite ist jetzt aktiviert!

35voto

Kripa Jayakumar Punkte 870

Es gibt viele Möglichkeiten, wie Sie dieses Problem beheben können, wenn Sie die Ursache des Problems kennen.

Problem 1

Erstens könnte es ein Problem mit Ihrem Apache sein, da das Modul mod_rewrite.c nicht installiert oder aktiviert ist.

Aus diesem Grund müssten Sie es wie folgt aktivieren

  1. Öffnen Sie Ihre Konsole und geben Sie folgendes ein:

    sudo a2enmod rewrite

  2. Starten Sie Ihren Apache-Server neu.

    service apache2 restart

Problem 2

  1. Sie müssen möglicherweise zusätzlich zu oben genanntem, wenn es nicht funktioniert, die Override-Regel aus der Apache-Konfigurationsdatei ändern (entweder apache2.conf, http.conf oder die Datei 000-default).

  2. Suchen Sie nach "Directory /var/www/"

  3. Ändern Sie "Override None" in "Override All"

Problem 3

Wenn Sie einen Fehler erhalten, der besagt, dass das Rewrite-Modul nicht gefunden wird, ist wahrscheinlich Ihr Userdir-Modul nicht aktiviert. Aus diesem Grund müssen Sie es aktivieren.

  1. Geben Sie dies in die Konsole ein:

    sudo a2enmod userdir

  2. Versuchen Sie dann, das Rewrite-Modul zu aktivieren, wenn es immer noch nicht aktiviert ist (wie oben erwähnt).

Weitere Informationen finden Sie auf dieser Website: http://seventhsoulmountain.blogspot.com/2014/02/wordpress-permalink-ubuntu-problem-solutions.html

34voto

Umesh Patil Punkte 4080

Öffnen Sie das Terminal und geben Sie a2enmod rewrite ein. Dadurch wird Ihr mod_rewrite-Modul für Apache aktiviert.

Gehen Sie dann zu /etc/apache2/sites-available und bearbeiten Sie die Standarddatei. (Dafür müssen Sie Schreibberechtigungen für diese Datei und den sites-available-Ordner haben.)

Ersetzen Sie untenstehende vorhandene Zeilen 4 bis 14

DocumentRoot /var/www

Options FollowSymLinks
AllowOverride All

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

Starten Sie nun Ihren Apache neu mit /etc/init.d/apache2 restart oder service apache2 restart

Testen Sie die saubere URL erneut und dieses Mal wird sie bestanden.

15voto

Danny Battison Punkte 493

Ich habe gerade bemerkt, dass du mod_rewrite.s anstelle von mod_rewrite.so gesagt hast - hoffentlich ist das ein Tippfehler in deiner Frage und nicht in der httpd.conf-Datei! :)

Ich bin es gewohnt, Apache auf Linux zu verwenden, musste es aber neulich auf diese Weise machen.

Als Erstes schau mal in dein Apache-Installationsverzeichnis. (Ich gehe hier davon aus, dass du es nach "C:\Program Files" installiert hast)

Schau in den Ordner: "C:\Program Files\Apache Software Foundation\Apache2.2\modules" und stelle sicher, dass dort eine Datei namens mod_rewrite.so vorhanden ist. (Das sollte der Fall sein, es wird als Teil der Standardinstallation bereitgestellt.

Dann öffne "C:\Program Files\Apache Software Foundation\Apache2.2\conf" und öffne die httpd.conf. Stelle sicher, dass die Zeile:

#LoadModule rewrite_module modules/mod_rewrite.so

auskommentiert ist:

LoadModule rewrite_module modules/mod_rewrite.so

Außerdem, wenn du den RewriteEngine standardmäßig aktivieren möchtest, könntest du etwas wie

    RewriteEngine On

an das Ende deiner httpd.conf-Datei hinzufügen.

Wenn nicht, stelle sicher, dass du

RewriteEngine On

irgendwo in deiner .htaccess-Datei angibst.

10voto

prasoon Punkte 773

Verwenden Sie den folgenden Befehl

sudo a2enmod rewrite

Und starten Sie Apache mit dem folgenden Befehl neu

sudo service apache2 restart

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X