it-swarm.com.de

Lassen Sie zwei verschiedene URLs die Homepage anzeigen

Ich möchte zwei verschiedene URLs für dieselbe Seite haben. Insbesondere möchte ich eine bestimmte URL haben, die meine Startseite anzeigt. Die URL sollte jedoch beibehalten werden. Also diese beiden URLs

www.mywebsite.com/
www.mywebsite.com/page1

sollten beide die Startseite anzeigen. Ich dachte, das könnte mit der add_rewrite_rule Funktion von WordPress gemacht werden, aber ich hatte noch keinen Erfolg damit.

Wenn ich das mache

add_rewrite_rule('^page1', 'index.php', 'top');

Es wirkt eher wie eine Umleitung. Wenn ich versuche, auf www.mywebsite.com/page1 zuzugreifen, werde ich auf meine Homepage umgeleitet. Aber ich möchte, dass die URL gleich bleibt, was anscheinend nicht der Fall ist.

Wenn ich das mache

add_rewrite_rule('^page1', 'index.php?pagename=$matches[1]', 'top');

es wird nur die Seite www.mywebsite.com/page1 anstelle der Startseite angezeigt.

Ich habe jetzt stundenlang mit den Umschreiberegeln rumgespielt und bin so ziemlich am Ende meines Wissens. Ist das, was ich will, überhaupt möglich?


Bearbeiten: Dies unterscheidet sich von vielen anderen Fragen darin, dass ich versuche, die Startseite anzuzeigen. Die hier bereitgestellte Lösung behebt dies, wenn Sie die Abfragesorte var verwenden können, aber ich habe es nicht geschafft, damit zu arbeiten.

1

WordPress wird immer versuchen, auf die kanonische URL umzuleiten, um doppelte Inhalte zu vermeiden. Sie müssen diesen Mechanismus also deaktivieren, damit eine andere URL diese Seite anzeigt.

Zunächst Ihre Umschreiberegel:

add_rewrite_rule('^page1', 'index.php?pagename=your-page-name', 'top');

Filtern Sie dann redirect_canonical, um false zurückzugeben, wenn die angeforderte URL Ihre zweite Heimat-URL ist:

function my_redir_check( $redirect_url, $requested_url ){
    if( home_url( '/page1/' ) == trailingslashit( $requested_url ) ){
        return false;
    }
    return $redirect_url;
}
add_filter( 'redirect_canonical', 'my_redir_check', 10, 2 );
1
Milo