Leiten Sie die Hauptsite in Multisite Wordpress zur Subsite um

11

Ich habe WordPress mit mehreren Sites. Ich möchte die Haupt-Site auf eine der Sub-Sites umleiten, aber die Umleitung in .htacecss gibt einen Fehler aus. Gibt es eine Möglichkeit, eine Hauptwebsite auf ihre Unterwebsite umzuleiten? Das sieht nicht möglich aus, aber ich bin kein WordPress-Experte.

Die Weiterleitung sollte wie sein

Weiterleitung 301 www.example.com/main-site www.example.com/main-site/sub-site

Oder ob es einen anderen Weg gibt, das zu tun?

Toqeer
quelle

Antworten:

10

Sie können die parse_requestAktion verwenden, um dies zu erreichen. Aktivieren Sie dieses Plugin einfach in Ihrem primären Blog. Fügen Sie den folgenden Code in eine .php-Datei ein und laden Sie ihn in Ihr Plugins-Verzeichnis hoch.

/*
Plugin Name: Redirect Main Site To Sub-Site
Description: Redirect 'main-site' to 'main-site/sub-site/'
Version: 0.1
Author: WPSE
Author URI: http://wordpress.stackexchange.com
License: GPL2
*/

add_action('parse_request', 'redirect_to_sub_site');
function redirect_to_sub_site(){
    global $wp;

    #Sniff requests for a specific slug
    if('main-site' === $wp->request){

        #The URL to redirect TO
        $url = 'http://www.example.com/main-site/sub-site/';

        #Let WordPress handle the redirect - the second parameter is obviously the status
        wp_redirect($url, 301);

        #It's important to exit, otherwise wp_redirect won't work properly
        exit;
    }
}

Lassen Sie mich wissen, wenn Sie Fragen haben.

Brian Fegter
quelle
+1 Und hier ist es wieder als schöner Two Liner ;)
Kaiser
1
@ Toqeer Du solltest das Kopfgeld vergeben. Ich werde es nicht zurückbekommen. ;)
kaiser
Gerade vergeben, ich dachte, es wird automatisch vergeben :)
Toqeer
Ich habe es jetzt mit der neuesten WordPress-Version versucht, aber es funktioniert nicht. Hast du irgendeine Idee?
Benutzer
1
Ich habe eine Lösung dafür gefunden, anstatt die $ wp-> -Anforderung zu überprüfen, überprüfen Sie einfach mit der Funktion is_main_site ();
Maor Barazany
3

Es scheint, $wp->requestdass die in der obigen Antwort vorgeschlagene Zeichenfolge immer eine leere Zeichenfolge ist (in WPMS 4.5.2), sodass Sie dies stattdessen überprüfen können is_main_site();.

Maor Barazany
quelle
2

Die akzeptierte Antwort funktioniert nicht in Wordpress 4.9.8. Hier ist der aktualisierte und getestete Code. Fügen Sie dies in function.php des aktiven Themas ein.

<?php
function wpse66115_redirect_to_sub_site() {
  if ( is_main_site() ) {
    exit( wp_redirect( 'http://www.example.com/main-site/sub-site/', 301 ) );
  }
}
add_action( 'parse_request', 'wpse66115_redirect_to_sub_site' );
?>
sharulhafiz
quelle