.htaccess überspringen WordPress 404-Fehlerbehandlung für statische Dateien .
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(robots\.txt|sitemap\.xml(\.gz)?)
RewriteCond %{REQUEST_FILENAME} \.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ [NC]
RewriteRule .* - [L]
</IfModule>
Hinweis: Diese Regeln wurden vom W3 Total Cache-Plugin generiert *
Nginx überspringt die WordPress 404-Behandlung für statische Dateien.
if (-f $request_filename) {
break;
}
if (-d $request_filename) {
break;
}
if ($request_uri ~ "(robots\.txt|sitemap\.xml(\.gz)?)") {
break;
}
if ($request_uri ~* \.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$) {
return 404;
}
Ich bin mir nicht sicher, ob das möglich ist. Wenn Sie sich den htaccess-Code ansehen, den WordPress erstellt, wenn Sie Permalinks aktivieren, heißt es im Grunde: "Wenn die Datei / das Verzeichnis nicht gefunden werden kann, senden Sie es an index.php." Dies umfasst alle tatsächlichen 404-Anforderungen. Abgesehen davon, dass Sie eine Liste aller dynamisch generierten öffentlichen Ressourcen erstellen müssen, die WordPress kennt, und diese direkt in .htaccess einfügen, müssen Sie PHP laden, um die 404-Ressourcen zu verarbeiten.
quelle
Die Idee von Chris_O hat mir gefallen , aber ich habe meine eigene Version erstellt, die sicherer ist.
Also, was ich getan habe, ich habe gerade Ordner zur Ausnahme hinzugefügt. Wenn Ihre Anforderungen also von diesen Zeilen ausgehen, ist dies definitiv kein gültiger Permalink. Die meisten Anfragen kommen von Bots, die versuchen, den Inhalt dieser Ordner auf Exploits zu überprüfen. Sie werden effektiv gefiltert und bei Bedarf können Sie eine kleine statische 404-Seite anzeigen.
Andere Anfragen werden weiterhin von WordPress bearbeitet. Wenn jemand eine falsche Adresse eingibt, wird eine benutzerfreundliche, nicht gefundene Nachricht in Ihrer Vorlage angezeigt. Die Lösung von Chris_O funktioniert nur für Anfragen, die wie Dateierweiterungen aussehen, ansonsten werden sie auch von WordPress bearbeitet.
Um es noch zuverlässiger zu machen, können Sie Ihre Rohzugriffsdatei abrufen und nach 404-Fehlern suchen. Wenn Sie feststellen, dass viele Anforderungen mit bestimmten Zeilen beginnen, können Sie sie auch in diesen Filter einschließen:
quelle
Ich habe mehrere CMS auf meiner Site installiert, daher verwende ich so etwas, um dieselbe 404-Fehlerseite für alle CMS zu verwenden. Ich benutze dieses conf für Nginx + FastCgi und es funktioniert gut:
Ich benutze diese Konfiguration zusammen mit dieser in der php.ini:
wordpress wird wie folgt installiert: http://example.com/wordpress/ . Die 404.html befindet sich im Stammverzeichnis von http://example.com/ .
PS Vergessen Sie nicht, dass die PHP- und Nginx-Dienste neu gestartet werden müssen, nachdem Änderungen an den Dateien php.ini oder nginx.conf vorgenommen wurden, damit die Änderungen wirksam werden.
quelle
Es gibt drei Möglichkeiten, dies zu tun
Komplettes Tutorial - (Link tot und zu Spam weitergeleitet)
quelle