it-swarm.com.de

Deaktivieren Sie die automatische Vervollständigung der Wordpress-URL

Ich habe kürzlich festgestellt, dass Wordpress versucht, eine URL automatisch zu vervollständigen, wenn sie nicht vollständig übermittelt wird. Z.B. Ich habe eine Post-URL, die so aussieht:

http://www.mysite.com/some-post-title

Wenn ich zur folgenden URL navigiere:

http://www.mysite.com/some-post-ti

Ich kann sehen, dass die URL an Wordpress übermittelt wird, Wordpress jedoch eine 301-Weiterleitung zu http://www.mysite.com/some-post-title durchführt.

Wie kann ich dieses Verhalten deaktivieren?

12
Luke

Ich glaube, das ist die Funktion redirect_canonical , die mit template_redirect verknüpft ist. Sie sollten es deaktivieren können mit:

remove_filter('template_redirect', 'redirect_canonical'); 

Aber Sie sollten sich wirklich überlegen, ob Sie das tun möchten, da es ziemlich kompliziert ist und einige wichtige SEO-Funktionen ausführt:

Leitet eingehende Links basierend auf der Website-URL an die richtige URL weiter.

Suchmaschinen betrachten www.somedomain.com und somedomain.com als zwei verschiedene URLs, wenn beide an den gleichen Ort gehen. Diese SEO-Verbesserung verhindert die Bestrafung doppelter Inhalte, indem alle eingehenden Links auf die eine oder andere umgeleitet werden.

Verhindert die Umleitung für Feeds, Trackbacks, Suchvorgänge, Kommentar-Popups und Administrator-URLs. Leitet nicht auf nicht-pretty-permalink-unterstützende IIS 7, Seiten-/Post-Vorschau, WP Admin, Trackbacks, robots.txt, Suchen oder auf POSTum _ Anfragen.

Es wird auch versucht, den richtigen Link zu finden, wenn ein Benutzer eine URL eingibt, die auf der Grundlage einer genauen WordPress-Abfrage nicht vorhanden ist. Versucht stattdessen, die URL oder die Abfrage zu analysieren, um die richtige Seite für den Zugriff zu ermitteln.

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13

Das folgendekönntebeendet die Autovervollständigung, ohne die SEO-Komponente zu beeinträchtigen, aber das kann ich nicht versprechen. Der Code ist kaum getestet da ich das noch nie deaktivieren wollte. Ich müsste wirklich redirect_canonical studieren, um mir sicher zu sein.

function kill_404_redirect_wpse_92103() {
  if (is_404()) {
   add_action('redirect_canonical','__return_false');
  }
}
add_action('template_redirect','kill_404_redirect_wpse_92103',1);
15
s_ha_dum

Dies scheint schrecklich verantwortungslos zu sein, dieses "Erraten" automatisch zu haben. Ich wäre viel offener dafür, wenn es Möglichkeiten gäbe, die richtige Seite zu definieren.

Ich habe zahlreiche Seiten, die als Sequenz erstellt wurden, und dieses automatische Erraten wählt fälschlicherweise die Antwort mit Seiten, die (zufällig?) Irgendwo in der Sequenz sind, im Gegensatz zur Startseite.

UPDATE: Dies ist ein bekanntes Verhalten, das hier berücksichtigt wird: https://core.trac.wordpress.org/ticket/16557

2
FitPM

Als Reaktion auf die Antwort von FitPM wurde ein Plugin erstellt, das das automatische Erraten deaktiviert.

Das Plugin ist hier: https://wordpress.org/plugins/disable-url-autocorrect-guessing/

1
wrydere