In fast jeder Lösung von "So aktivieren Sie htaccess" heißt es, dass die Datei / etc / apache2 / sites-available / default bearbeitet werden muss. Aber es gibt keine solche Datei in Apache 2.4.7
Ich habe irgendwo gelesen, dass die neue Standarddatei 000-default.conf ist. Also habe ich diesen bearbeitet und versucht, die Zeile hinzuzufügen:
AllowOverride All
Aber Apache2 wurde nicht richtig neu gestartet und gab einen Fehler. Aus einer Apache2-Dokumentation habe ich herausgefunden, dass AllowOverride nur unter dem <Directory>
Abschnitt zulässig ist . Dann habe ich versucht, dies hinzuzufügen:
<Directory "/var/www">
AllowOverride All
</Directory>
Und das scheint zu funktionieren. Ich bin mir aber nicht sicher, ob ich / var / www hätte dort ablegen sollen. Ist es eine korrekte Vorgehensweise oder wird mein Computer irgendwie in die Luft gehen?
quelle
Antworten:
tl; dr
Ja, es ist der richtige Weg.
Aber um semantischer zu sein : Ja, es ist die richtige Möglichkeit,
.htaccess
alle Anweisungen im/var/www
Verzeichnis außer Kraft zu setzen .Wie Sie herausgefunden haben,
AllowOverride
ist nur unter demDirectory
Abschnitt erlaubt .Verwenden Sie Ihr Beispiel:
Dies sagt Apache, dass alle Konfigurationen in den
/var/www
und all ihren Unterverzeichnissen (rekursiv) überschrieben werden können .Angenommen, Sie haben die folgende Konfiguration in Ihrem virtuellen Host, um ein besseres Beispiel zu erhalten:
Und die folgende Verzeichnisstruktur:
Was ich hier gemacht habe, ist
.htaccess
in jedem Unterverzeichnis des Verzeichnisses ein anzulegen/var/www
.Es sollte normalerweise nicht so sein, aber dies ist nur zum Zwecke des Beispiels
Wenn Sie die Verzeichnisstruktur mit der Konfiguration vergleichen, bedeutet dies, dass alle
.htaccess
Dateien im/var/www
Ordner und seinen Unterverzeichnissen mit Ausnahme des/var/www/uploads
Verzeichnisses und seiner Unterverzeichnisse alle Arten von Anweisungen überschreiben können.Aber
/var/www/uploads
und seine Unterverzeichnisse können nur die Verwendung.htaccess
Datei , die die zu überschreibenAllow
,Deny
undOrder
Richtlinien.Hinweis: Ab Apache 2.4 (standardmäßig in 13.10+ verfügbar ist) die
Allow
,Deny
undOrder
Richtlinien wurden durch eine einzige Richtlinie genannt ersetztRequire
.quelle
Aktivieren Sie zuerst das Neuschreiben mit dem folgenden Befehl:
Dann starte apache2 neu:
Dann gehe in den
sites-available
Ordner:Bearbeiten Sie die Datei mit dem Namen
default
und wechseln SieAllowOverride none
zuAllowOverride All
. Es gibt zwei Zeilen, in denen diese Änderung vorgenommen werden muss.Dadurch wird die
.htaccess
Arbeit in Ihrem Server VPS.Dies funktionierte auf einem Ubuntu 12.04.5 VPS.
quelle
default
Datei aufgerufen000-default.conf
und enthält keineAllowOverride None
Zeile.000-default.conf
und es ist nicht möglich,AllowOverride None
hier hinzuzufügen , wenn Sie Apache neu laden geben Fehler.htaccess
, ist es besser, sie zu verwendenAllowOverride FileInfo
. Obwohl FileInfo bereits viele Direktiven enthält, würden Sie dennoch viele Direktiven daran hindern, überschrieben zu werden.In meinem Fall hat es so funktioniert:
Ich musste die folgenden Zeilen hinzufügen:
So sieht es also aus:
quelle
Hier ein Ausschnitt, wie Sie htaccess in Apache 2.4 aktivieren können, ohne die Standardkonfiguration zu ändern:
quelle