Wie kann ich die automatische Weiterleitung verhindern?


16

Wordpress hat eine Funktion, mit der Ihre URLs automatisch umgeleitet werden, wenn sie falsch geschrieben werden. Hier ist ein Beispiel: Ich habe eine Seite namensmy-page

Wenn ich gehe zu:

www.mysite.com/something/my-page/

es wird mich sofort weiterleiten

www.mysite.com/my-page/

da bei der ersten URL nichts vorhanden ist.

Wie kann ich diese Funktion deaktivieren und stattdessen nur eine 404 erhalten, wenn falsche URLs eingegeben wurden?


Wenn Sie beobachten, was gerade passiert (über HttpFox oder WireShark oder einen ähnlichen Paket-Sniffer), werden diese Seiten mit dem Status 301 - dauerhaft verschoben - umgeleitet, was angemessen ist. Es hilft Suchmaschinen unter anderem dabei, ihre Datenbanken auf dem neuesten Stand zu halten, und die Weiterleitung hilft Benutzern beim Auffinden von Seiten. Dies kann sich darauf auswirken, wie WordPress mit Dingen umgeht, wenn Sie eine Seite verschieben oder einen Permalink ändern. Seien Sie also vorsichtig. Wie auch immer, Ihre Wahl, aber ich bin nicht sicher, ob es eine gute Idee ist.
s_ha_dum

Ich weiß, dass es eine gute Sache ist, das verstehe ich. Ich habe jedoch einen bestimmten Anwendungsfall, in dem ich dieses Verhalten nicht benötigt habe. Ich entwickle ein Plugin, das die URL-Umleitung verwaltet, und möchte dieses Verhalten überschreiben.
Asche

Hier ist eine richtigere Antwort: Link
Binod - GoFundMonica

Antworten:


23

Das hat bei mir funktioniert:

remove_action('template_redirect', 'redirect_canonical');

Können Sie mich leiten, was es tun wird? Was ist kanonische Weiterleitung? Ich bin neu in WordPress
Yatin Mistry

Du hast mir gerade viele Kopfschmerzen erspart! Danke ! :-D
Jenski

1
Können wir diese Weiterleitungen nirgendwo sehen, so dass wir sie einzeln entfernen können?
Shane Jones

Das ist toll. Wissen Sie, warum Sie wp-adminnach dieser Verwendung möglicherweise immer noch umleiten?
Gezim

Eine ausführliche Erklärung zu diesem Problem finden Sie unter dev4press.com/blog/wordpress/2015/…
ronnefeldt

5

Wie von Ash vorgeschlagen, können Sie die Funktion mithilfe des folgenden Codes deaktivieren:

remove_action('template_redirect', 'redirect_canonical');

Wenn Sie sich die Funktion redirect_canonical in der Datei canonical.php ansehen, können Sie das Verhalten auch mit Ihrem eigenen Filter ändern.

Am Ende der Funktion redirect_canonical () befindet sich ein Aufruf zum Filtern der endgültigen Antwort:

$redirect_url = apply_filters( 'redirect_canonical', $redirect_url, $requested_url );

So könnten Sie Ihre eigene Filter schreiben die endgültige Umleitung oder return null zu modifizieren , um die Umleitung zu beenden, auf der Grundlage der eingegebenen, wodurch das Ausschalten der Funktion für eine bestimmte URL oder eine Teilmenge von URLs.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.