it-swarm.com.de

Müssen Sie Apache neu starten, damit die Regeln für das erneute Schreiben in der .htaccess-Datei wirksam werden?

Ich habe meine .htaccess-Dateien an die Produktionsserver gesendet, aber sie funktionieren nicht. Wäre ein Neustart der nächste Schritt, oder sollte ich etwas anderes überprüfen.

92

Ein Neustart ist nicht für Änderungen an .htaccess erforderlich. Etwas anderes stimmt nicht.

Stellen Sie sicher, dass Ihr .htaccess die Anweisung enthält

RewriteEngine ein

dies ist auch dann erforderlich, wenn es auch in httpd.conf vorhanden ist. Stellen Sie außerdem sicher, dass .htaccess vom httpd-Prozess gelesen werden kann.
Überprüfen Sie das error_log - es zeigt Ihnen alle Fehler in .htaccess an, wenn verwendet wird. Wenn Sie in .htaccess einen absichtlichen Syntaxfehler eingeben, stellen Sie sicher, dass die Datei verwendet wird. Sie sollten auf jeder Seite im selben Verzeichnis einen 500-Fehler erhalten.

Zuletzt können Sie ein Umschreibeprotokoll mit Befehlen wie den folgenden in Ihrer httpd.conf aktivieren:

RewriteLog "logs/rewritelog"

RewriteLogLevel 7

Die so erzeugte Protokolldatei gibt Ihnen detaillierte Informationen darüber, welche Umschreibregeln übereinstimmten und wie sie gehandhabt wurden.

87
TomG

Nein :

Apache ermöglicht die dezentrale Verwaltung der Konfiguration über spezielle Dateien im Webbaum. Die speziellen Dateien heißen normalerweise .htaccess, aber in der Direktive AccessFileName kann ein beliebiger Name angegeben werden ... Da .htaccess-Dateien bei jeder Anforderung gelesen werden, werden die in diesen Dateien vorgenommenen Änderungen sofort wirksam ...

51
Milen A. Radev

Aus der Apache-Dokumentation: In den meisten Fällen besteht das Problem darin, dass AllowOverride nicht so eingestellt ist, dass Ihre Konfigurationsanweisungen eingehalten werden. Stellen Sie sicher, dass für den fraglichen Dateibereich nicht AllowOverride None aktiviert ist. Ein guter Test dafür ist, den Müll in die .htaccess-Datei zu legen und neu zu laden. Wenn kein Serverfehler generiert wird, ist mit ziemlicher Sicherheit AllowOverride None aktiviert.

18
PiedPiper

Nur wenn Sie nicht das Modul mod_rewrite zu Apache hinzugefügt haben.

Sie müssen Apache nur neu starten, wenn Sie Apache ".conf" -Dateien ändern.

3
ethyreal

Im Falle von .htaccess ist ein Neustart nicht erforderlich, wenn dies nicht funktioniert. Mögliche Gründe hierfür sind:.

  • AllowOverride Darf nicht festgelegt werden, welcher Benutzer in httpd.conf festlegen kann oder möglicherweise den Serveradministrator kontaktieren muss .

  • Überprüfen Sie den Dateinamen von .htaccess .htaccess sollte nicht htaccess.txt sein. Siehe hier als Anleitung wie man einen erstellt.

  • Versuchen zu benutzen Options -Indexes oder deny all Art einfache Anweisung, um zu sehen, ob es funktioniert oder nicht.

  • löschen Sie den Browser-Cache jedes Mal, wenn eine Regel für Weiterleitungen oder Ähnliches vorhanden ist, wenn die vorherige Weiterleitung zwischengespeichert ist.

2
Abhishek Gurjar

Ich habe das gleiche Problem und es scheint, dass der PiedPiper-Post über AllowOverride am hilfreichsten war. Überprüfen Sie Ihre httpd.conf-Datei für "AllowOverride" und stellen Sie sicher, dass es auf All festgelegt ist.

2
user825302

Was ist in deinem .htaccess? RewriteRules? Stellen Sie sicher, dass mod_rewrite installiert und aktiviert ist.

Andere Sachen? Versuchen Sie, AllowOverride in diesem Verzeichnis auf 'all' zu setzen.

0
ceejayoz