Reindirizzare il sito principale al sito secondario in Wordpress multisito


11

Ho un wordpress multi-sito, voglio reindirizzare il sito principale a uno dei siti secondari ma il reindirizzamento in .htacecss dà errore. Esiste un modo per reindirizzare un sito principale al suo sito secondario. Ciò non sembra possibile ma non sono un esperto di wordpress, quindi sto solo verificando.

Il reindirizzamento dovrebbe essere come

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

O se c'è un altro modo per farlo?

Risposte:


10

È possibile utilizzare l' parse_requestazione per ottenere questo risultato. Abilita semplicemente questo plugin sul tuo blog principale. Inserire il codice seguente in un file .php e caricarlo nella directory dei plug-in.

/*
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;
    }
}

Fatemi sapere se avete domande.


+1 Ed eccolo di nuovo come due belle linee ;)
kaiser,

1
@Toqeer Dovresti assegnare la taglia. Non lo riavremo indietro. ;)
kaiser,

Appena assegnato, ho pensato che verrà automaticamente assegnato :)
Toqeer,

Ho provato ora con l'ultima versione di WordPress ma non funziona. Hai qualche idea?
Utente

1
Ho trovato una soluzione per questo, invece di controllare la richiesta $ wp->, basta controllare con la funzione is_main_site ();
Maor Barazany,

3

Sembra che $wp->requestquello suggerito nella risposta di cui sopra sia sempre una stringa vuota (in WPMS 4.5.2), quindi puoi verificarlo con is_main_site();.


2

La risposta accettata non funziona per Wordpress 4.9.8. Ecco il codice aggiornato e testato. Inserisci questo all'interno di function.php del tema attivo.

<?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' );
?>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.