Come trasferire WordPress da una sottodirectory alla root

Spostare un blog WordPress dalla sottodirectory alla root (per ottenere, ad esempio, che il blog abbia come indirizzo non più http://labandabassotti.it/blog ma solo http://labandabassotti.it) non è un’impresa così difficile come potrebbe sembrare a prima vista; occorre comunque molta attenzione. Soprattutto, bisogna essere davvero convinti di quello che si sta facendo, riflettere e prendere tutte le precauzioni prima di affrontare un passo del genere. 

Riflessione: sei sicuro di fare la cosa giusta?

Prova a leggere questo articolo: Pubblicare un Blog sulla Root o in una Sottodirectory? Ti farà riflettere su aspetti di cui forse non sei a conoscenza.

Precauzioni:

Oltre ai soliti backup, quando ci si appresta a fare un cambiamento così importante e delicato conviene prendere anche qualche altra precauzione più specifica:

  1. Aggiornamento: aggiorna WordPress all’ultima versione disponibile.
  2. Aspetta un momento di ‘quiete’: cioè aspetta di fare questa operazione in un momento in cui il tuo blog è stabile, funziona bene e non ha appena subito altri importanti cambiamenti, altrimenti, in caso di problemi potresti non essere più in grado di stabilire con certezza se siano dovuti al trasferimento nella root o ad altre cause.
  3. Backup del database: ci sono vari modi di farlo (entrando in PhpMyAdmin, esportando un file XML da WordPress>Strumenti>Esporta, servendosi di un plugin…); la cosa migliore e farlo in tutti i modi che conosci, perché… non si sa mai quello che può succedere nel momento in cui dovessi importarlo.
  4. Backup di tutti i file e cartelle WordPress: via FTP è un attimo. Assicurati di aver fatto la copia di *tutti* (ma proprio TUTTI) i file, compreso .htaccess, index.php, wp-config.php, ecc.

Il trasferimento, in pratica

La buona notizia è che non è necessario reinstallare WordPress; basta seguire questo procedimento. IMPORTANTE: Non devi spostare i file e le cartelle di WordPress finché non hai svolto completamente il punto 1.

  1. Entra nell’area di amministrazione del tuo blog e vai in Impostazioni>Generale. Qui devi cambiare gli indirizzi presenti nei campi “Indirizzo WordPress (URL)” e “Indirizzo del sito (URL)”, mettendo il nuovo indirizzo corrispondente alla root; ad esempio, se adesso il tuo blog ha un indirizzo del tipo http://labandabassotti.it/blog, dovrai inserire in entrambi i campi il nuovo indirizzo http://labandabassotti.it. Questo sarà l’indirizzo che avrà il tuo blog quando avrai completato il processo di trasferimento nella root.
    Se i campi suddetti  risultano non modificabili (tipicamente sono colorati di grigio), allora la soluzione è andare a modificarli nel database; devi accedere a PhpMyAdmin e visualizzare la tabella wp_options; qui vai a modificare gli url dei campi siteurl e home (questo è parecchie righe più avanti, forse dovrai scorrere la seconda pagina), inserendo in entrambi i casi l’indirizzo di root (http://labandabassotti.it)N.B.: Non tentare di visualizzare o accedere al tuo blog adesso; devi aspettare.
  2. Adesso (e solo adesso, non prima di aver svolto il punto 1) sposta i file e le cartelle di installazione di WordPress dalla sottodirectory alla root.
  3. Accedi a Impostazioni>Permalink e controlla che tutto sia come lo avevi settato in precedenza; poi clicca su “Salva le modifiche” anche se non hai modificato niente. Questo passaggio serve ad evitare di visualizzare messaggi di errore quando aprirai gli articoli del blog.
  4. Accedi a Impostazioni>Media e controlla che  il percorso della cartella in cui verranno caricati i file sia quello nuovo, non quello della vecchia posizione; clicca su “Salva le modifiche”. Questo evita che i file che caricherai da adesso in avanti finiscano in un percorso sbagliato.
  5. Ora puoi visualizzare il blog; controlla che i post, le pagine, gli archivi, gli indici delle categorie e dei tag siano accessibili.
  6. Molto probabilmente dopo il trasferimento noterai la presenza di parecchi link rotti: quelli più evidenti sono quelli che puntano alle immagini che dovrebbero caricarsi all’interno degli articoli. E’ necessario, quindi, aggiornare gli url alla nuova posizione; farlo manualmente all’interno dei singoli post sarebbe un lavoro immane; meglio farlo all’interno del database. Per farlo, si può operare una sostituzione (del tipo “trova-sostituisci”, come si farebbe in un qualsiasi file testuale) al file esportato dal database e poi ricaricarlo. Oppure si possono lanciare delle query direttamente all’interno di PhpMyAdmin:
    • Questo codice serve ad aggiornare i permalink:
      UPDATE wp_posts SET guid = REPLACE (
      guid,
      'http://labandabassotti.it/blog',
      'http://labandabassotti.it');
    • Questa query aggiorna gli url all’interno dei post:
      UPDATE wp_posts SET post_content = REPLACE (
      post_content,
      'http://labandabassotti.it/blog',
      'http://labandabassotti.it');

    N.B.: Ovviamente quando lanci le query sostituisci labandabassotti.it/blog con il vecchio indirizzo del tuo blog, e labandabassotti.it con il nuovo indirizzo . Inoltre stai attento al prefisso;  se le tue tabelle hanno un prefisso diverso da wp, allora wp_posts è da sostituire con iltuoprefisso_posts. Se non metti il prefisso giusto, ti apparirà un messaggio di errore quando lanci la query.

  7. Veniamo ora al redirect; è necessario farlo per non perdere i visitatori che tentano di accedere al sito con i vecchi url. Il redirect si può fare direttamente nel file .htaccess, ma penso sia più comodo usare un plugin come Redirection Plugin. Dopo averlo installato, vai in Strumenti>Redirection; ci sono due campi, riempili con le stinghe qui indicate:
    “Url di partenza”:  /blog/(.*)
    (Al posto di “blog” metti il nome della vecchia cartella in cui avevi installato wordpress prima del trasferimento).
    “Url di arrivo”:  /$1
    Ora premi il pulsante “Crea reindirizzamento”; se provi ad accedere al vecchio link, dovresti essere automaticamente reindirizzato al nuovo link.
  8. Ultimo passo da fare è controllare i feed: probabilmente bisognerà aggiornare gli indirizzi; fai delle verifiche e, in via cautelativa, avverti i tuoi lettori che qualcosa potrebbe non funzionare; invita anche loro ad assicurarsi di ricevere i feed e, eventualmente, a reiscriversi.
  9. Tieni d’occhio la situazione attraverso i tuoi strumenti di analisi del sito per individuare eventuali link rotti o sospetti cali delle visite.

È tutto. In bocca al lupo e goditi il tuo blog! :) Anch’io ho fatto un trasferimento di questo tipo col mio blog e ne sono uscita viva. Ecco alcuni link che mi sono stati molto utili:

34 thoughts on “Come trasferire WordPress da una sottodirectory alla root

  1. Pingback: nosatispassion - Come trasferire WordPress da una sottodirectory alla root - AlterVista - Webpedia

  2. Pingback: I migliori post della settimana #101 | Web Developer / Web Designer / SEO Specialist / Napoli :: EmaWebDesign

  3. Pingback: Piccolo grande cambiamento | NoSatisPassion

  4. Ho spesso pensato di fare questo cambiamento ma mi sono arenata vedendo, nel pannello di controllo, l’impossibilità di modificare l’indirizzo. Vanno fatte modifiche al database, di cui non ero a conoscenza. Nel momento in cui vorrò cambiar qualcosa sicuramente terrò a mente la presenza di questo tutorial.
    Quanto mi piace questo blog, bravissima, è tutto molto interessante!

  5. @Kisal: Grazie, sei gentilissima! :) Se decidi di fare questo “cambiamento”, ti consiglio di agire in un momento di estrema calma e sangue freddo! ;)

  6. ciao ho seguito tutto alla lettera e ha funzionato alla grande (per il punto 3 ho dovuto riaggiornare per vedere la pagina).

    girando il sito per vedere se tutto era ok senza link rotti ad un certo punto il sito comincia ad essere veramente lento fino al punto che mi da sempre schermata bianca, ogni tanto errore 500. come posso rimediare? potrebbe essere il plugin wp-super-cache che da questo problema?

    ho provato anche ad operare da database ma nulla

    grazie per l’attenzione

  7. Ciao Sergio, per quanto riguarda il rallentamento, non saprei, potrebbe essere dovuto a vari motivi; se sospetti possa essere il plugin, prova a disattivarlo temporaneamente.
    Per quanto riguarda l’errore 500, prova a leggere questo articolo: Errore http 500; ti aiuterà ad individuare la causa del problema.
    In bocca al lupo! ;)

  8. ho cancellato tutto dal server e ho ricaricato tutto dal mio backup. non so perchè ma adesso funziona

  9. Ciao, abbiamo eseguito alla lettera le tue indicazioni e miracoloooo abbiamo trasferito tutta la cartella wordpress fuori nella root principale…il sito funziona e nessun link rotto per fortuna! Grazie mille!!!!

  10. @elisabetta: bravissimi! :) Mi fa proprio molto piacere che tutto sia andato a buon fine. Ho visto il vostro sito ed è davvero bello e interessante, complimenti!

  11. Ciao Elisa,
    io vorrei cercare di far diventare il mio blog come home page del mio sito… avevo installato il mio blog wodpress all’interno del mio sito, adesso vorrei far diventare la pagina del blog home page del mio sito, ma non mi dispiace che ci sia lo /blog dopo… come posso fare?

  12. @Daniela: se sei proprio sicura di voler fare questo, allora la prima cosa da fare è seguire la procedura qui descritta. Ma attenzione: il tuo sito (cioè tutto quello che hai attualmente che non fa parte del ‘blog’) sparirà! Per conservarlo, dovresti fare un backup e poi reinstallarlo a parte.
    Per fare sì che ci sia una homepage più gli articoli del blog dopo, prova a vedere questo articolo, sempre scritto da me: Come personalizzare l’homepage di un blog wordpress; guarda specialmente il paragrafo ‘Impostare una pagina statica come Homepage’.

  13. si il back up lo faccio sempre, quindi diciamo che mi preoccupo poco, mi basta sapere che solo rifacendo il backup torna tutto come prima! :P
    una domanda, in questo modo io perderei le statistiche?

  14. @Daniela: non credo che perderai le statistiche; lo strumento di analisi statistica dovrebbe registrare comunque gli accessi al sito, come prima.

  15. Ok grazie. Anche se credo che quando mi faranno il passaggio a joomla 1.6 dovrò installarlo direttamente come banner nella parte admin e non nel template come ho fatto fino ad ora.
    Grazie di tutto! :)

  16. Erano giorni che giravo in rete e tutte le procedure trovate mi mettevano paura al solo leggerle…si sono un pivello su WP.
    La tua è guida è tanto semplice quanto efficace…davvero complimenti.

    Alla fine della procedura è tutto ok, ma mi ritrovo solo con un piccolo ma fastidioso problema…non riesco più ad caricare immagini sulla libreria media.

    Nel momento in cui vado a caricare un nuvo file questo è il messaggio che mi compare:

    ” “0aa7467869bc0eea02e367d.jpg” non è riuscito a caricare a causa di un errore
    Impossibile creare la directory /home/*******/public_html/blog/wp-content/uploads/2011/09. Verifica che la directory madre sia scrivibile dal server!”

    Tutto funziona come si deve, tranne questo. Preciso ed anticipo che ho controllato e ricontrollato i permessi sulla cartella e sulle cartelle 755 a tutto spiano, ma nulla…quando vado a caricare una nuova immagine mi compare l’errore. Un piccolo aiutino?

    Grazie mille ancora per la guida.

  17. @Michell: intanto grazie per esserti affidato ai miei consigli; sono contenta che anche tu l’abbia ‘passata liscia’! ;P
    Per quanto riguarda il tuo problema, è possibile che dipenda dal fatto che ti sei dimenticato di svolgere il punto 4? Te lo ricopio:
    < < Accedi a Impostazioni>Media e controlla che il percorso della cartella in cui verranno caricati i file sia quello nuovo, non quello della vecchia posizione; clicca su “Salva le modifiche”. Questo evita che i file che caricherai da adesso in avanti finiscano in un percorso sbagliato. >>
    Prova a controllare il percorso nella pagina ‘Impostazioni>Media’: verifica che sia quello giusto!
    Altrimenti non saprei da cosa può dipendere.

  18. @elisa

    Mi sono appena collegato per inserire che ho risolto tutto e trovo la tua risposta…..quando si dice il caso eh ehe he he

    Effettivamente il problema stava proprio nel punto 4 che io ho eseguito però ho inserito un url diverso da quello che necessitava.
    Sostanzialmente ho spostato il blog da una cartella a un’altra (o meglio da una cartella del dominio principale a quella del sotto dominio) e la “tracciatura” della cartella ultima differiva dalla prima non di poco.
    Grazie mille e complimentissimi per il lavoro.

  19. @Michell: Tutto è bene ciò che finisce bene!;) Ti auguro un buon proseguimento con il tuo blog e ti ringrazio per i complimenti! :)

  20. Ciao, grazie per il tutorial molto utile!…io però ho riscontrato un problema….ho fatto tutti i passaggi….ma appena dopo aver spostato il sito non riesco più ad accedere con il mio utente admin….mi sai aiutare?

    Grazie in anticipo!

  21. @Letizia: Ciao Letizia, probabilmente il tuo problema non è legato al trasferimento, ma a qualche altro motivo. Prova ad avviare la procedura di recupero, oppure contatta il tuo hosting per chiedere chiarimenti.

  22. Io ho seguito esattamente tutte le tue istruzioni, il sito si trova sull’hosting di tophost.it ma seguendo i link delle categorie, SOLO CON FIREFOX mi dice PAGINA NON TROVATA:
    voglio solo spostare il sito da questa sotto cartella
    http://www.mugelbike.com/provvisorio/
    alla root:
    http://www.mugelbike.com
    Ho copiato index.php e .htacess, ho copiato tutto i files e modificato il db con le query, e aggiornato i permalink premendo salva da qui:
    http://www.mugelbike.com/wp-admin/options-permalink.php

  23. @Carlo Collodi: io riesco a vedere tutto il tuo sito bene anche con Firefox, nessun problema con le categorie. Forse era un problema momentaneo, o forse devi aggiornare Firefox o qualche sua estensione.

  24. Grazie mille della spiegazione, ha funzionato benissimo! Solo una cosa, sicuro che la stringa ” /blog/(.*) => /$1 ” del plugin Redirection non sia in realtà ” /blog/(.*) ” e basta? L’ho inserita nel plugin da alcuni giorni ma mi dice che sono stati fatti 0 redirect… ciao!

  25. Innanzi tutto…perdonate la grande ignoranza. Ho seguito la tua guida fino al punto “1” ma come faccio a spostare i file? grazie per la pazienza…sono un principiante :)
    grazie

    claudio

  26. ciao allora vorrei dirvi… ho questo sito gapdifferent .it e vorrei trasferire il tutto a blog.gapdifferent .it ho copiato tutti i file ftp e ho caricato il database… ma quando vado su blog.gapdifferent non mi carica nulla :( mi da pagina bianca… help me.. :(

  27. Ottimo Tutorial…….meno male che o avuto una mano nell’eseguire l’operazione e con il vostro supporto sono riuscito nel cambio di directory…… ora è perfetto !! Grazie mille :) :( (y) (y)

  28. Scusate………… a quest’ora le lettere si perdono nella tastiera…..

    Ottimo Tutorial…….meno male che mi hanno dato una mano nell’eseguire l’operazione e con il vostro supporto sono riuscito nel cambio di directory…… ora è perfetto !! Grazie mille :) :( (y) (y)

  29. Pingback: Spostare cartella Wordpress da /blog a /root

  30. Pingback: Migrazione Sito

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *