Frage Wie aktiviert man mod_rewrite in Apache?


Ich habe gerade den LAMP-Stack auf meinem Ubuntu-System installiert.

Die Umleitung funktioniert nicht für mich. Ich weiß nicht, wie ich es beheben soll. Kann mir jemand helfen?


158
2018-06-12 13:45


Ursprung


IMHO diese Frage ist nicht Ubuntu spezifisch und sollte zu migriert werden Serverfehler. - Paolo
Die OP installierte Lampe auf UBUNTU. Wie viel mehr Ubuntu spezifisch willst du? - wojox
@wojov: Ich weiß nichts über diesen Fall, aber dieses Argument funktioniert nicht. "Wie kann ich diese Anwendung (auf Ubuntu) verwenden?" sind meist off-topic.
Dies ist kein "Wie kann ich eine Anwendung verwenden", sondern ein "Wie aktiviere ich eine bestimmte Funktion in Ubuntu". Apache unter Ubuntu verwendet ein anderes Konfigurationslayout, in dem jedes Modul und jeder virtuelle Host eine Datei ist /etc/apache2 und das kann mit aktiviert werden a2* Programme. - Lekensteyn
Sie sollten beschreiben, was Sie getan haben, um das Problem einzugrenzen - ericn


Antworten:


Um es zu aktivieren, führen Sie "apache2 enable modul rewrite" aus:

sudo a2enmod rewrite

Sie müssen den Webserver neu starten, um die Änderungen zu übernehmen:

sudo service apache2 restart

Wenn Sie vorhaben, mod_rewrite zu verwenden .htaccess Dateien, müssen Sie auch die Verwendung von aktivieren .htaccess Dateien durch Ändern AllowOverride None zu AllowOverride FileInfo. Bearbeiten Sie für die Standardwebsite /etc/apache2/sites-available/default:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # changed from None to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

Nach einer solchen Änderung müssen Sie Apache erneut starten.


231
2018-06-12 13:49



Ich hatte mehr Erfolg mit AllowOverride All - Valentin Despa
Vielen Dank! sudo a2enmod rewrite und FileInfo repariere es für mich! - d-_-b
Für mich war diese Datei /etc/apache2/apache2.conf, wo ich diesen Konfigurationseintrag gefunden habe - rahmanisback
Ja, machen Sie die zwei Änderungen das Problem behoben. - Adelin
Es funktioniert nicht für mich. Ich habe hier eine Frage gestellt askubuntu.com/questions/809619/failing-to-rewrite-url - Suhail Gupta


Ich wage es, eine spezielle Antwort hinzuzufügen (als eine Folge der großen Antwort oben) bezüglich ubuntu 14.04 und .htaccess :

In 14.04 wird der Name der Standardkonfigurationsdatei in geändert 000-default.conf :

sudo gedit /etc/apache2/sites-available/000-default.conf

füge folgendes am Ende der Datei hinzu:

<Directory "/var/www/html">
    AllowOverride All
</Directory>

Aus irgendeinem Grund ist in Ubuntu 14.04 und apache2 der Root auf gesetzt /www/html. Wenn Sie den Webserver Root auf gut alt ändern möchten /www, open 000-default.conf und ändern

DocumentRoot /var/www/html/

zu

DocumentRoot /var/www/

und dann natürlich sollte es sein

<Directory "/var/www">
    AllowOverride All
</Directory>

49
2017-10-17 13:00



Das ist ein wichtiges Detail +1 - Koba
Danke für Infos! Diese / neue Weise können wir www als Ordner benutzen, wo wir alle Webseiten setzen, und html ist standardmäßig "website" für localhost. Kann wichtig sein, wenn Sie mit öffnenden Ports zur Welt spielen - auf diese Weise kann Ihr localhost keine Ordner anderer Projekte sehen. - Vladimir Vukanac
Es funktioniert nicht für mich. ich benutze Ubuntu 14.04.4 LTS - Suhail Gupta