it-swarm.com.de

Catch 404 nach Änderung der Permalink-Struktur von /% postname%/in /% category% /% postname% /

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.

7
prashant

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;
}
7
fuxia

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.

0
Griffin