Deaktivieren Sie die automatische Vervollständigung der Wordpress-URL
-
-
Einegetestete Lösung,dienicht dasgesamte kanonische URL-System deaktiviert,sondernnur den Teil "Erraten" der automatischen Vervollständigung deaktiviert,wird [hier]beschrieben (http://wordpress.stackexchange.com/a/144970/51898).A tested solution that does not disable the whole canonical URL system but only disables the autocomplete "guessing" part is outlined [here](http://wordpress.stackexchange.com/a/144970/51898)
- 0
- 2014-05-20
- Hauke P.
-
4 Antworten
- Stimmen
-
- 2013-03-24
Ichglaube,dasist die
redirect_canonical
Funktion,diemittemplate_redirect
. Sie solltenes deaktivieren könnenmit:remove_filter ('template_redirect','redirect_canonical');
Aber Sie sollten wirklich darübernachdenken,ob Sie dastunmöchten,daes ziemlich kompliziertist undeinige wichtige SEO-Funktionen ausführt:
Leiteteingehende Linksbasierend auf der Website-URL auf die richtige URL um.
Suchmaschinenbetrachten www.somedomain.com und somedomain.com als solche zwei verschiedene URLs,wennbeide an denselben Speicherortgehen. Diese SEO Die Verbesserung verhinderteine Strafefür doppelten Inhalt,indem alle umgeleitet werden eingehende Links zu demeinen oder anderen.
Verhindert die Umleitung von Feeds,Trackbacks,Suchen,Kommentar-Popups, und Administrator-URLs. Leitetnicht aufnicht-hübsche Permalink-Unterstützung um IIS 7,Seiten-/Beitragsvorschau,WP-Administrator,Trackbacks,robots.txt,Suchen, oder auf POST-Anfragen.
Versucht auch,den richtigen Link zufinden,wennein Benutzereine URLeingibt dasexistiertnichtbasierend auf dergenauen WordPress-Abfrage. Ich werdees stattdessen versuchen um die URL oder Abfrage zu analysieren,um die richtige Seite zufinden gehe zu.
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13
Diefolgenden könnten die automatische Vervollständigungbeenden,ohne die SEO-Komponente zubeeinträchtigen,aber das kannichnicht versprechen. Der Code wird kaumgetestet ,daich diesnie deaktivieren wollte. Ichmüsste wirklich
redirect_canonical
studieren,ummir sicher zu sein.Funktion kill_404_redirect_wpse_92103 () { if (is_404 ()) { add_action ('redirect_canonical','__ return_false'); }} }} add_action ('template_redirect','kill_404_redirect_wpse_92103',1);
I believe that is the
redirect_canonical
function hooked totemplate_redirect
. You should be able to disable it with:remove_filter('template_redirect', 'redirect_canonical');
But you should really think about whether you want to do that as it is fairly complicated and performs some important SEO functions:
Redirects incoming links to the proper URL based on the site url.
Search engines consider www.somedomain.com and somedomain.com to be two different URLs when they both go to the same location. This SEO enhancement prevents penalty for duplicate content by redirecting all incoming links to one or the other.
Prevents redirection for feeds, trackbacks, searches, comment popup, and admin URLs. Does not redirect on non-pretty-permalink-supporting IIS 7, page/post previews, WP admin, Trackbacks, robots.txt, searches, or on POST requests.
Will also attempt to find the correct link when a user enters a URL that does not exist based on exact WordPress query. Will instead try to parse the URL or query in an attempt to figure the correct page to go to.
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13
The following might kill the autocompletion without messing with the SEO component, but I can't promise that. The code is barely tested as I have never wished to disable this. I'd really have to study
redirect_canonical
to be sure of anything.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);
-
Ich habe dieses Code-Snippet am Endemeiner Datei/wp-includes/canonical.php hinzugefügt und die Weiterleitungenfindenimmernoch statt.Macheichetwasfalsch?Kann sonstnochjemand dieses Verhalten deaktivieren?I added this code snippet to the end of my /wp-includes/canonical.php file and the redirects are still happening. Am I doing something wrong? Anyone else unable to disable this behaviour?
- 0
- 2019-06-04
- user1380540
-
@ user1380540 Siebearbeiten keine Kerndateien.Dies würde zueinem Themafunctions.php oder zueinem Plugingehen.@user1380540 you don't edit core files. this would go to a theme functions.php or to a plugin.
- 0
- 2020-07-16
- Michael Rogers
-
- 2014-07-28
Dies scheintfurchtbar verantwortungslos zu sein,wenn diese "Vermutung" automatischerfolgt.Ich wäre viel offener dafür,wenneseine Möglichkeitgäbe,zu definieren,welche Seite die richtigeist.
Ich habe zahlreiche Seiten,die als Sequenzerstellt wurden,und diese automatische Schätzungentscheidet sichfälschlicherweise dafür,mit Seiten zu antworten,die sich (zufällig?)irgendwoin der Sequenzbefinden,im Gegensatz zur Startseite.
UPDATE: Diesistein bekanntes Verhalten und wird hierberücksichtigt: https://core.trac.wordpress.org/ticket/16557
This seems terribly irresponsible, to have this "guessing" occur automatically. I would be much more open to it if there were some means of defining which was the correct page to go to.
I have numerous pages that are built as a sequence, and this auto-guessing is incorrectly choosing to respond with pages that are (randomly?) somewhere in the sequence, as opposed to the starting page.
UPDATE: This is known behavior, and is being considered here: https://core.trac.wordpress.org/ticket/16557
-
- 2017-08-02
Als Antwort auf die Antwort von FitPM wurdeein Pluginerstellt,das das automatische Erraten deaktiviert.
Ab dem 2. August 2017funktioniertesin Wordpress 4.8einwandfrei. Das Pluginist hier: https://wordpress.org/plugins/disable-url-autocorrect-guessing/
As a follow up to FitPM's answer - a plugin has been created that disables the auto-guessing behavior.
It works fine for me on Wordpress 4.8 as of August 2, 2017. The plugin is here: https://wordpress.org/plugins/disable-url-autocorrect-guessing/
-
- 2020-05-13
Ein Hinweis: Wennman redirect_canonical deaktiviert (z. B.mit
remove_action('template_redirect', 'redirect_canonical');
),werden zufällige Links wie https://tld.com/some-random-string/blogpost funktioniertebenfalls (der Inhalt von https://tld.com/real-category-slug/blogpost wird angezeigt).Wenn Sie dies verhindern und 404für diese zufälligen URLs zurückgebenmöchten,verwenden Sieetwas wie
add_filter( 'redirect_canonical', function( $redirect_url ) { $url = 'http'.((isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off')?'s':'').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if( $redirect_url !== $url ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } return false; });
One note: If one disables redirect_canonical (e.g. with
remove_action('template_redirect', 'redirect_canonical');
), random links like https://tld.com/some-random-string/blogpost also work (the content of https://tld.com/real-category-slug/blogpost is shown).If you want to prevent that and return 404 on those random urls, use something like
add_filter( 'redirect_canonical', function( $redirect_url ) { $url = 'http'.((isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off')?'s':'').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if( $redirect_url !== $url ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } return false; });
Ich habe kürzlichfestgestellt,dass Wordpress versucht,eine URL automatisch zu vervollständigen,wenn sienicht vollständig übermittelt wurde.Z.B.Ich habeeine Post-URL,diefolgendermaßen aussieht:
Wennich zurfolgenden URLnavigiere:
Ich kann sehen,dass die URL an Wordpressgesendet wird,aber dass Wordpresseine 301-Umleitung zu
http://www.mysite.com/some-post-title
durchführt.Wie kannich dieses Verhalten deaktivieren?