Geben Sie einige Junk - Wert in Ihr .htaccess
zB foo bar
, sakjnaskljdnas
irgendein Schlüsselwort nicht durch .htaccess erkannt und Ihre URL besuchen. Wenn es funktioniert, sollten Sie eine bekommen
500 Interner Serverfehler
interner Serverfehler
Der Server hat einen internen Fehler oder eine Fehlkonfiguration festgestellt und konnte Ihre Anforderung nicht ausführen.
Ich schlage vor, dass Sie es bald danach setzen RewriteEngine on
.
Da bist du auf deiner Maschine. Ich nehme an, Sie haben Zugriff auf die Apache- .conf
Datei.
Öffnen Sie die .conf
Datei und suchen Sie nach einer Zeile ähnlich der folgenden:
LoadModule rewrite_module modules/mod_rewrite.so
Wenn es kommentiert ist (#), kommentieren Sie Apache aus und starten Sie es neu.
Um das Umschreiben zu protokollieren
RewriteEngine On
RewriteLog "/path/to/rewrite.log"
RewriteLogLevel 9
Fügen Sie die obigen 3 Zeilen in Ihre ein virtualhost
. Starten Sie den httpd neu.
RewriteLogLevel 9
Wenn Sie einen hohen Wert für Level verwenden, wird Ihr Apache-Server dramatisch verlangsamt! Verwenden Sie das Umschreiben der Protokolldatei auf einer Stufe größer als 2 nur zum Debuggen! Stufe 9 protokolliert fast jedes Umschreibungsdetail.
AKTUALISIEREN
In Apache 2.4 haben sich die Dinge geändert:
VON Upgrade von 2.2 auf 2.4
Die Anweisungen RewriteLog und RewriteLogLevel wurden entfernt. Diese Funktionalität wird jetzt bereitgestellt, indem die entsprechende Protokollierungsstufe für das mod_rewrite-Modul mithilfe der LogLevel- Direktive konfiguriert wird . Siehe auch den Abschnitt zur Protokollierung von mod_rewrite.
Weitere Informationen zu LogLevel finden Sie in der LogLevel-Richtlinie
Sie können erreichen
RewriteLog "/path/to/rewrite.log"
auf diese Weise jetzt
LogLevel debug rewrite_module:debug
Die Antwort "Junk-Wert eingeben" hat mir nicht geholfen, meine Website wurde trotz des eingegebenen Junk-Werts weiter geladen.
Stattdessen habe ich die folgende Zeile oben in die .htaccess-Datei eingefügt:
Dadurch erfahren Sie schnell, ob .htaccess abgeholt wird oder nicht. Wenn der .htaccess verwendet wird, werden die Dateien in diesem Ordner überhaupt nicht geladen.
quelle
Im Allgemeinen sollte jede Änderung des .htaccess sichtbare Auswirkungen haben. Wenn dies keine Auswirkung hat, überprüfen Sie Ihre Apache-Konfigurationsdateien wie folgt:
Sollte geändert werden zu
Und Sie können Anweisungen in .htaccess-Dateien ändern.
quelle
Eine logischere Methode wäre möglicherweise, eine Datei (z. B. test.html) zu erstellen, Inhalte hinzuzufügen und dann zu versuchen, sie als Indexseite festzulegen:
Zum größten Teil überschreibt die .htaccess-Regel die Apache-Konfiguration, wenn auf Verzeichnis- / Dateiebene gearbeitet wird
quelle
Um die erste der drei gestellten Fragen zu beantworten, können Sie auf einfache Weise feststellen, ob die .htaccess-Datei funktioniert oder nicht, indem Sie einen benutzerdefinierten Fehler oben in der .htaccess-Datei auslösen:
Bei Ihrer zweiten Frage: Wenn die .htaccess-Datei nicht gelesen wird, ist möglicherweise die Apache-Hauptkonfiguration des Servers auf
AllowOverride
eingestelltNone
. In der Dokumentation von Apache finden Sie Tipps zur Fehlerbehebung für diesen und andere Fälle, die möglicherweise verhindern, dass der .htaccess wirksam wird.Um Ihre dritte Frage zu beantworten: Wenn Sie bestimmte Variablen debuggen müssen, auf die Sie in Ihrer Umschreiberegel verweisen, oder einen Ausdruck verwenden , den Sie unabhängig von der Regel auswerten möchten, können Sie Folgendes tun:
Geben Sie die Variable aus, auf die Sie verweisen, um sicherzustellen, dass sie den erwarteten Wert hat:
Testen Sie den Ausdruck unabhängig, indem Sie ihn in eine
<If>
Richtlinie aufnehmen. Auf diese Weise können Sie sicherstellen, dass Ihr Ausdruck richtig geschrieben ist oder übereinstimmt, wenn Sie Folgendes erwarten:Viel Spaß beim Debuggen von .htaccess!
quelle
Wenn Sie Zugriff auf das Apache Bin-Verzeichnis haben, das Sie verwenden können,
httpd -M
um zuerst geladene Module zu überprüfen.Danach mögen
Options -Indexes
oderdeny from all
werden einfache Anweisungen festigen, dass .htaccess korrekt funktioniert.quelle
Um Ihre Regeln für das Umschreiben von htaccess zu testen, geben Sie einfach die URL ein, auf die Sie die Regeln anwenden, platzieren Sie den Inhalt Ihres htaccess im größeren Eingabebereich und klicken Sie auf die Schaltfläche "Test".
http://htaccess.mwl.be/
quelle
Warum nicht etwas Müll in Ihre .htaccess-Datei einfügen und versuchen, Apache neu zu laden? Wenn Apache nicht gestartet werden kann, wissen Sie, dass es funktioniert. Entfernen Sie den Junk und laden Sie Apache neu, wenn die von Ihnen konfigurierten Glückwünsche .htaccess korrekt geladen werden.
quelle