So aktivieren Sie mod_rewrite für den virtuellen Host

8

Die mod_rewrite-Regel funktioniert auf dem virtuellen Host nicht. Ich wollte das für Cakephp.

Gibt es Einstellungen zum Hinzufügen in der virtuellen Hostdatei?

user12gk21hkj
quelle

Antworten:

21

Wenn Sie die neueste Apache-Version 2.4+ verwenden, erfahren Sie hier, wie Sie mod_rewrite aktivieren.

Gehen Sie mit Ihrem bevorzugten Texteditor zu etc/apache2/
Öffnen apache2.conf.
Veränderung

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

zu

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Dann speichere es. Denken Sie daran, dass Sie über die Root-Berechtigung zum Bearbeiten und Speichern dieser Datei verfügen sollten.
Starten Sie nun Apache neu.

service apache2 reload

Dieser Prozess aktiviert mod_rewrite für den Apache-Server einschließlich des virtuellen Hosts.

Sie können auch überprüfen, ob es aktiviert ist oder nicht. Erstellen Sie ein PHP-Skript

<?php    
phpinfo();    
?>

Laden Sie es vom Server. Loaded ModulesÜberprüfen Sie unter Abschnitt, ob vorhanden mod_rewriteist oder nicht. Wenn es da ist, ist es aktiviert.

Nabil
quelle
Bevor ich diese Option verwendete, endeten alle meine Umschreibungen bei 404, aber nach dem Aktualisieren apache2.confund Neustarten apacheverschwand 404, aber alle Seiten landeten wieder auf der Homepage! phpinfo()hatte auch kein mod_rewriteModul aktiviert. Wenn Sie dann CLI commnd ausführen (wie von Lonston unten vorgeschlagen), ist alles golden! Warum hat diese Lösung das mod-rewriteModul nicht für mich aktiviert , sondern für die CLI? Ist dies eine Kombination aus Ändern .confund Ausführen des CLI-Befehls nacheinander, um das Modul zu aktivieren, oder reicht einer dieser Befehle tatsächlich aus?
Niladri Sarkar
6

Aktivieren Sie das Umschreiben mit

# sudo a2enmod rewrite

Starten Sie dann apcahe2 mit neu

# service apache2 restart

Aktivieren Sie in Virtualhost durch Hinzufügen

AllowOverride FileInfo

Starten Sie dann apcahe2 mit neu

# service apache2 restart

Beispiel :

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # I Have below line from none to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>
Babin Lonston
quelle
Das hat auch bei mir funktioniert!
Niladri Sarkar