Ich habe meine .htaccess-Dateien in die Produktionsserver verschoben, aber sie funktionieren nicht. Wäre ein Neustart der nächste Schritt, oder sollte ich etwas anderes überprüfen.
Ich habe meine .htaccess-Dateien in die Produktionsserver verschoben, aber sie funktionieren nicht. Wäre ein Neustart der nächste Schritt, oder sollte ich etwas anderes überprüfen.
Antworten:
Für Änderungen an .htaccess ist kein Neustart erforderlich. Etwas anderes stimmt nicht.
Stellen Sie sicher, dass Ihr .htaccess die Anweisung enthält
RewriteEngine on
Dies ist auch dann erforderlich, wenn es auch in httpd.conf vorhanden ist. Überprüfen Sie auch, ob .htaccess vom httpd-Prozess gelesen werden kann.
Überprüfen Sie das error_log - es informiert Sie über Fehler in .htaccess, wenn es verwendet wird. Das Einfügen eines absichtlichen Syntaxfehlers in .htaccess ist eine gute Überprüfung, um sicherzustellen, dass die Datei verwendet wird. Auf jeder Seite im selben Verzeichnis sollte ein 500-Fehler angezeigt werden.
Zuletzt können Sie ein Umschreibungsprotokoll mit Befehlen wie den folgenden in Ihrer httpd.conf aktivieren:
RewriteLog "logs / rewritelog"
RewriteLogLevel 7
Die so erzeugte Protokolldatei gibt Ihnen genau an, welche Umschreiberegeln übereinstimmen und wie sie behandelt wurden.
Nein :
Apache ermöglicht die dezentrale Verwaltung der Konfiguration über spezielle Dateien im Webbaum. Die speziellen Dateien werden normalerweise aufgerufen
.htaccess
, aber in der AccessFileName- Direktive kann ein beliebiger Name angegeben werden ... Da .htaccess-Dateien bei jeder Anforderung gelesen werden, werden Änderungen an diesen Dateien sofort wirksam ...
Aus der Apache-Dokumentation: Am häufigsten besteht das Problem darin, dass AllowOverride nicht so festgelegt ist, dass Ihre Konfigurationsanweisungen berücksichtigt werden. Stellen Sie sicher, dass für den betreffenden Dateibereich kein AllowOverride None aktiviert ist. Ein guter Test dafür ist, Müll in Ihre .htaccess-Datei zu legen und neu zu laden. Wenn kein Serverfehler generiert wird, ist mit ziemlicher Sicherheit AllowOverride None aktiviert.
Ich habe das gleiche Problem und es scheint, dass PiedPiper-Posts über AllowOverride am hilfreichsten waren. Überprüfen Sie Ihre httpd.conf-Datei auf "AllowOverride" und stellen Sie sicher, dass sie auf "Alle" gesetzt ist.
Im Falle von .htaccess ist kein Neustart erforderlich, wenn es nicht funktioniert.
AllowOverride Möglicherweise ist nicht festgelegt, welcher Benutzer in httpd.conf festlegen kann oder möglicherweise den Serveradministrator kontaktieren muss.
Überprüfen Sie den Dateinamen von .htaccess. Es sollte .htaccess und nicht htaccess.txt sein. Hier finden Sie eine Anleitung zum Erstellen eines .htaccess .
Versuchen Sie , Verwendung Options -Indexes
oder deny all
Art einfacher Richtlinie zu sehen , ob es funktioniert oder nicht.
Löschen Sie den Browser-Cache jedes Mal, wenn Sie eine Regel für Weiterleitungen oder ähnliches haben, wenn die vorherige Weiterleitung zwischengespeichert ist. Es sieht so aus, als ob die Dinge nicht funktionieren.
LogLevel alert rewrite:trace7
. Nach dem Neustart von Apache sollten Sie die Spuren im error.log sehen. Hoffe, das hilft. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging