Ich habe vor einiger Zeit eine Website erstellt und nach einigen Tagen wurden einige Beiträge von Suchmaschinen indexiert. Heute habe ich die Permalink-Struktur von /%postname%/
in /%category%/%postname%/
geändert.
Wenn danach Leute von Suchmaschinen auf meine Website kommen, wird ein 404 page not found error
angezeigt. Ich möchte alle alten URLs auf die neue Kategoriebasis-URL ohne 404-Fehler ändern.
Wie kann ich es tun?
Übrigens verwende ich das Yoast-Plugin.
Das passiert, weil WordPress jetzt Ihren alten Beitragsnamen als Kategorienamen liest - und diese Kategorie nicht finden kann.
Lösung: 404_template
filtern und versuchen, den Beitrag und seinen Permalink zu finden. Dann umleiten.
<?php # -*- coding: utf-8 -*-
/* Plugin Name: Redirect to category */
add_filter( '404_template', 't5_redirect_to_category' );
function t5_redirect_to_category( $template )
{
if ( ! is_404() )
return $template;
global $wp_rewrite, $wp_query;
if ( '/%category%/%postname%/' !== $wp_rewrite->permalink_structure )
return $template;
if ( ! $post = get_page_by_path( $wp_query->query['category_name'], OBJECT, 'post' ) )
return $template;
$permalink = get_permalink( $post->ID );
wp_redirect( $permalink, 301 );
exit;
}
Sie müssen 301 Weiterleitungen von Ihren alten Seiten-URLs zu den neuen hinzufügen.
Dieses Plugin sollte das erreichen, was Sie wollen: http://wordpress.org/extend/plugins/redirection/
Da es Änderungen an Ihren Permalinks erkennt und automatisch Weiterleitungen hinzufügt, müssen Sie zu Ihrer alten Permalink-Struktur zurückkehren, das Plugin aktivieren und dann Ihre Permalinks auf die neue Struktur aktualisieren.
Hoffe das hilft.