Ich möchte den AllowOverride all
einstellen, weiß aber nicht, wie ich das machen soll. Ich habe den folgenden Code gefunden, indem ich in Google gesucht und ihn in .htaccess
eingefügt habe:
<Directory>
AllowOverride All
</Directory>
Aber nachdem ich es eingefügt hatte, erhielt ich "Internal Server Error"
Kann mich jemand anleiten, wo ich diesen Code ablegen soll oder wie ich das mache?
Wenn Sie unter Ubuntu arbeiten, bearbeiten Sie die Datei /etc/Apache2/Apache2.conf
(hier haben wir ein Beispiel für /var/www
):
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
und ändere es in;
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
dann,
Sudo service Apache2 restart
Möglicherweise müssen Sie auch Sudo a2enmod rewrite
ausführen, um das Umschreiben des Moduls zu aktivieren.
Das Hauptziel von AllowOverride
besteht darin, dass der Manager der Hauptkonfigurationsdateien von Apache (die sich hauptsächlich in/etc/Apache2/befinden) entscheidet, welcher Teil der Konfiguration von Anwendungen pro Pfad dynamisch geändert werden kann .
Wenn Sie nicht der Administrator des Servers sind, sind Sie auf die AllowOverride -Ebene angewiesen, die diese Administratoren für Sie zulassen. Damit sie Sie daran hindern können, einige wichtige Sicherheitseinstellungen zu ändern.
Wenn Sie der Master-Apache-Konfigurationsmanager sind, sollten Sie immer AllowOverride None
verwenden und alle auf Google_ basierenden Beispiele, die Sie auf der Grundlage von .htaccess-Dateien finden, in die Abschnitte Directory
der Hauptkonfigurationsdateien übertragen. Als .htaccess-Inhalt für eine .htaccess
-Datei in /my/path/to/a/directory
ist derselbe wie eine <Directory /my/path/to/a/directory>
-Anweisung, außer dass die .htaccess
dynamische Konfigurationsänderung pro HTTP-Anforderung etwas verlangsamt Fahren Sie Ihren Webserver herunter. Bevorzugen Sie immer eine statische Konfiguration ohne .htaccess
-Überprüfungen (und Sie vermeiden auch Sicherheitsangriffe durch .htaccess
-Änderungen).
Übrigens verwenden Sie in Ihrem Beispiel <Directory>
und dies ist immer falsch. Verzeichnisanweisungen enthalten immer einen Pfad wie <Directory />
oder <Directory C:>
oder <Directory /my/path/to/a/directory>
. Und dies kann natürlich nicht in einen .htaccess
als .htaccess
eingefügt werden, sondern ist wie eine Directory-Anweisung in einer Datei in diesem Verzeichnis. Natürlich können Sie AllowOverride
in .htaccess
nicht ändern, da diese Anweisung die Sicherheitsstufe von .htaccess
Dateien verwaltet .
Gehe zu your_severpath/Apache_ver/conf/
Öffne die Datei httpd.conf
im Editor.
Finden Sie diese Zeile:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
Entfernen Sie das Hash-Symbol:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Dann gehe zu <Directory />
und wechseln zu:
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Starten Sie dann Ihren lokalen Server neu.
Um unter Linux den Zugriff auf das Dokumentstammverzeichnis zu vereinfachen, müssen Sie die folgende Datei bearbeiten:
/etc/httpd/conf/httpd.conf
Und je nachdem, auf welcher Verzeichnisebene Sie den Zugriff entspannen möchten, müssen Sie die Direktive ändern
AllowOverride None
zu
AllowOverride All
Angenommen, Sie möchten den Zugriff auf Dateien im Verzeichnis/var/www/html zulassen, sollten Sie die folgenden Zeilen von ändern:
<Directory "/var/www/html">
AllowOverride None
</Directory>
zu
<Directory "/var/www/html">
AllowOverride All
</Directory>
Wenn Sie Linux verwenden, können Sie den Code im Verzeichnis von bearbeiten
/etc/httpd/conf/httpd.conf
nun, hier finden Sie die Code-Zeile ein bisschen wie
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
Ändern Sie AllowOveride None in AllowOveride All
Jetzt können Sie jede Art von Regel in Ihrer .httacess-Datei in Ihren Verzeichnissen festlegen, wenn ein anderes Betriebssystem nur versucht, die Datei von httpd.conf zu finden und zu bearbeiten.
Wie andere Benutzer hier über die Verwendung der allowoveride-Direktive erklärt haben, mit der die Berechtigung zur Verwendung von .htaccess erteilt wird. Ich möchte darauf hinweisen, dass allowoverride niemals für alle verwendet wird, wenn andere Benutzer Zugriff auf .htaccess haben, statt allowoveride zu verwenden, um bestimmte Module zuzulassen.
Wie AllowOverride AuthConfig mod_rewrite
Anstelle von
AllowOverride All
Denn ein Modul wie mod_mime kann Ihre serverseitigen Dateien als Klartext rendern.
Ich denke, Sie möchten es in Ihrer httpd.conf
-Datei anstelle der .htaccess
-Datei festlegen.
Ich bin nicht sicher, welches Betriebssystem Sie verwenden, aber dieser Link für Ubuntu kann Ihnen einige Hinweise geben, was zu tun ist.
https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles
Dieses Problem ist auch aufgetreten und ich habe die Lösung im folgenden Schritt 2 gefunden: 1. Im sites-enabled-Ordner von Apache2 bearbeiten Sie im Directory-Element, indem Sie "AllowOverride all" festlegen (sollte "all" und nicht "none" sein). 2. Benennen Sie in einem Kohana-Projekt im WWW-Ordner "example.htaccess" in ".htaccess" um.
Ich habe es auf Ubuntu gemacht. Hoffe, dass es dir hilft.
SuSE Linux Enterprise Server
Stellen Sie sicher, dass Sie die richtige Datei bearbeiten https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_Apache2_configuration.html
httpd.conf
Die Hauptkonfigurationsdatei des Apache-Servers. Vermeiden Sie Änderungen an dieser Datei. Sie enthält hauptsächlich Include-Anweisungen und globale Einstellungen. Überschreiben Sie die globalen Einstellungen in den hier aufgeführten Konfigurationsdateien. Ändern Sie die hostspezifischen Einstellungen (z. B. Dokumentstamm) in Ihrer virtuellen Hostkonfiguration .
In diesem Fall muss vhosts.d/*.conf
bearbeitet werden