Se hai attualmente il tuo sito WordPress in una sottocartella e vuoi spostarlo nella root del dominio, con questa guida imparerai a farlo correttamente.
Molte volte si crea una copia del sito usando una sottocartella (sitoesempio.com/wordpress/) e poi arriva il momento di voler spostare il sito nella root (sitoesempio.com).
In altri casi si può decidere di spostare nella root un sito precedentemente creato in una sottocartella o in un sottodominio.
Qualunque sia la ragione per cui vuoi fare questa modifica, vedremo che c’è un modo semplice per eseguire il trasferimento del sito in un’altra directory e soprattutto vedremo come farlo senza lasciare nulla al caso.
Iniziamo!
Table of Contents
Cosa significa trasferire un sito WordPress nella root
Quando installiamo WordPress, scegliamo quale sarà la directory del sito.
Nello specifico, avendo il dominio “supporthost.com” possiamo scegliere se:
- creare il sito su un sottodominio: blog.supporthost.com
- crearlo in una sottocartella: supporthost.com/blog/
- avere il sito nel dominio principale: supporthost.com
Quando impostiamo come directory del sito la root, esso sarà visibile visitando il dominio principale.
Potrebbero esserci diverse ragioni per aver creato il sito in un sottodominio o una sottocartella e volerlo poi spostare nella root.
Nella maggior parte dei casi quando si sviluppa un nuovo sito o si fa un restyling di un sito esistente, si crea la nuova installazione proprio in una sottocartella o in un sottodominio o si fa uno staging partendo da una copia del sito. In questo modo il sito vecchio continua a essere accessibile dal dominio principale, mentre possiamo lavorare alle modifiche in una cartella separata.
Questo sistema è utile perché ci permette di tenere il sito accessibile mentre lavoriamo alle modifiche su una nuova installazione. Dobbiamo però ricordarci di proteggere la sottocartella o il sottodominio in cui stiamo lavorando alle modifiche in modo che non sia visitabile né da persone, né da motori di ricerca durante lo sviluppo. Uno dei metodi più efficaci per farlo è usare la protezione htaccess.
Adesso passiamo alla pratica vera e propria e vediamo come spostare un sito WordPress in un’altra directory.
Tieni presente che in questo tutorial che vedremo faremo questo spostamento: trasferire il sito da una sottocartella alla root.
Se nel tuo caso specifico vuoi spostare, invece, il sito da un sottodominio alla root, oppure al contrario dalla root a una sottocartella, puoi facilmente adattare la procedura alle tue esigenze tenendo conto delle cartelle di origine e destinazione.
Come spostare il sito WordPress da sottocartella a root
Quando trasferiamo un sito WordPress da un sottodominio o una sottocartella alla root, stiamo spostando il sito ma restando nello stesso server.
La procedura da seguire sarà quindi simile, ma non identica rispetto a spostare il sito da un server a un altro o a trasferirlo da locale a remoto.
Nello specifico, per poter cambiare la directory di WordPress dovremo:
- fare un backup;
- spostare i file;
- modificare l’URL e il percorso del sito nel file di configurazione;
- aggiornare tutte le URL.
Vediamo come fare tutte queste operazioni passo passo.
Fare un backup completo del sito
Prima di procedere è importante assicurarsi di avere un backup completo del tuo sito WordPress. Avere un backup significa avere una copia di:
- file del sito;
- database.
Fai bene attenzione perché i siti WordPress hanno bisogno del database per funzionare e il database è proprio il luogo in cui vengono conservate tutte le informazioni per far funzionare il sito, ad esempio i contenuti di pagine e post.
Ci sono diversi modi per fare un backup di WordPress, scegline uno e assicurati di scaricare il backup in modo da averne una copia aggiornata sul computer o su un altro sistema di storage (fisico o in cloud).
Oltre a usare un plugin, puoi anche fare un backup manuale:
- da cPanel scarichi i file del sito;
- da phpMyAdmin esporti il database.
Copiare i file dalla sottocartella alla root
Il primo passo da fare, dopo il backup, consiste nello spostamento dei file. L’obiettivo è copiare i file del sito dalla cartella attuale alla root.
Per farti capire meglio il processo da seguire, porterò come esempio il trasferimento che ho effettuato ai fini di questa guida.
Nel mio caso voglio trasferire il sito dalla sottocartella blog al dominio principale.
Avrò quindi questa situazione:
- sito di partenza: miodominio.com/blog/
- sito dopo lo spostamento: miodominio.com/
Per prima cosa dovrò copiare i file che si trovano nella sottocartella, nel mio caso “blog”, nella root. La root in genere è la cartella con il nome public_html, ma in altri casi può chiamarsi anche home.
Per copiare i file, posso usare due metodi:
- usare il file manager di cPanel;
- usare un client FTP come FileZilla.
Per procedere da cPanel ti basta avere i dati di accesso al tuo account cPanel.
Per usare un client FTP, invece, devi avere i dati del tuo account FTP:
- host
- nome utente
- password
- porta.
Se sei cliente SupportHost, trovi tutte queste informazioni nell’email di attivazione del tuo piano hosting.
Ai fini di questa guida, ti mostrerò come usare il file manager di cPanel.
Accedi a cPanel e apri il file manager.
Apri la cartella del tuo sito WordPress, per esempio nel mio caso si trova nella sottocartella blog e il percorso sarà quindi public_html/blog/.
All’interno ci sono tutti i file e le cartelle di WordPress (wp-admin, wp-content, ecc). Selezioniamo tutti i file e clicchiamo su “Copy” (o Copia) in alto, quindi scegliamo il percorso di destinazione.
Per spostare i file nella root, ci basterà specificare nel percorso “/public_html/” e cliccare su “Copy files“.
Appena la copia sarà completata, aprendo la cartella “public_html” vedremo tutti i file copiati correttamente.
Modificare il file wp-config
Il prossimo passaggio è quello di modificare il file wp-config.php.
All’interno di questo file possiamo specificare la directory e l’URL del sito. Ora che abbiamo spostato i file, dobbiamo anche aggiornare queste informazioni in modo che visitando l’URL si acceda al sito appena spostato nella root.
Apriamo quindi la root, troviamo il file wp-config.php e lo modifichiamo. Da file manager puoi fare click con il pulsante destro del mouse e poi cliccare “Edit” (o Modifica).
Nel file dobbiamo inserire queste due righe:
define('WP_HOME','https://esempio.com');
define('WP_SITEURL','https://esempio.com');
Prima di farlo, devi sostituire “esempio.com” con il dominio corretto.
Le righe vanno inserite subito prima della riga:
/* That's all, stop editing! Happy publishing. */
Dopo la modifica, salviamo il file cliccando su “Save changes” in alto.
Aggiornare tutte le URL
Fino a qui abbiamo trasferito i file e aggiornato l’URL del sito WordPress. Adesso però il nostro lavoro non è ancora finito.
Infatti, dopo aver fatto questi passaggi, ci saranno ancora dei collegamenti interni che contengono il percorso vecchio dell’installazione di WordPress.
Nel mio caso specifico sono rimasti link a immagini e altre risorse che vengono richiamate dall’installazione nella sottocartella blog.
Per poter aggiornare correttamente tutti gli indirizzi, dobbiamo far sì che il database di WordPress non abbia più riferimenti al vecchio percorso e che questi vengano rimpiazzati con il nuovo indirizzo.
Fare questa modifica con un query di sostituzione diretta nel database di WordPress può causare degli errori. Infatti, alcuni dei dati di WordPress sono serializzati e se li sostituiamo direttamente si corromperanno causando problemi.
La procedura più corretta da seguire, quindi, è utilizzare un metodo che non corrompa i dati serializzati.
Per procedere abbiamo due strade:
- fare un cerca e sostituisci con WP-CLI;
- usare un plugin.
Nel primo caso possiamo fare una ricerca e sostituzione nel database di WordPress usando il comando search-replace di WP-CLI. È meglio seguire questo metodo se hai già familiarità con l’uso del terminale e di WP-CLI. Se vuoi usare questo metodo, con SupportHost hai a disposizione WP-CLI anche sui piani condivisi, tra cui l’hosting WordPress.
Altrimenti puoi usare un plugin come WP Migrate Lite.
Questo plugin ci permette sia di trasferire un sito da un server a un altro che di fare delle sostituzioni nel database.
In questo caso ci serve solo per modificare il database.
Per usarlo, installa e attiva il plugin.
Dopodiché clicca su Strumenti > WP Migrate e apri la scheda “Migrate“. Qui dovrai cliccare sullo strumento “Find & Replace“.
Vedrai quindi due sezioni:
- nella sezione Find devi inserire l’URL di partenza. Nel nostro caso sarà il sito nella sottocartella. (nomesito.com/blog)
- nella sezione Replace, inserisci l’URL di destinazione, quindi il dominio (root). (nomesito.com)
Cliccando su “Previw Change“, ci vengono mostrate le URL trovate, dopodiché possiamo cliccare su “Apply Changes” per confermare la sostituzione.
A questo punto il plugin avrà aggiornato correttamente tutte le URL che puntavano alla sottocartella.
Impostare i redirect
Ora che abbiamo trasferito correttamente il nostro sito WordPress da una sottocartella alla root del sito, c’è un’altra questione da esaminare.
Mi servono i redirect?
Se il tuo sito era già online e accessibile tramite sottocartella / sottodominio ed è stato indicizzato dai motori di ricerca, devi fare un ulteriore passaggio: impostare i redirect.
Altrimenti, se avevi creato il sito in una sottocartella solo per svilupparlo e non lo avevi ancora messo online, quindi i motori di ricerca né le persone conoscevano la sua esistenza, allora non è necessario seguire questa opzione e aggiungere i redirect.
Perché serve e come si imposta il redirect
Quando facciamo dei cambiamenti in siti già pubblicati, è un po’ come quando ci trasferiamo e cambiamo indirizzo: vogliamo che le persone che ci contattavano al vecchio indirizzo, ci possano raggiungere nella nostra nuova casa.
Lo stesso concetto si applica ai siti web. Se il tuo sito era raggiungibile tramite miosito.com/blog/ e ora lo hai spostato su miosito.com, vuoi che motori di ricerca e persone lo sappiano e possano continuare a visitarlo.
Qui entrano in gioco i reindirizzamenti o redirect. Attraverso di essi stiamo rimandando le persone che visitano il vecchio URL miosito.com/blog/ direttamente sul nuovo miosito.com.
Il metodo migliore per impostare un reindirizzamento permanente (redirect 301), è quello di usare il file htaccess.
Per esempio per reindirizzare dalla sottocartella blog alla root, possiamo creare o modificare il file .htaccess con questa regola:
RewriteEngine on
RewriteBase /
RewriteRule ^blog/(.*)$ /$1 [R=301,L]
Per farlo, possiamo modificare il file htaccess da file manager e aggiungere la regola sotto la riga “RewriteEngine on
” come indicato nell’esempio qui sopra.
Nota che puoi modificare il file esistente o crearne uno nuovo, ma non è necessario riscrivere la riga “RewriteEngine on
” se è già presente. Per farti capire meglio, il file htaccess di default di WordPress sarà come questo:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
La regola da personalizzare per il redirect da sottocartella a root, invece è questa:
RewriteRule ^blog/(.*)$ /$1 [R=301,L]
Ovviamente dovrai personalizzarla in base alle tue esigenze, ad esempio cambiando “blog” con il nome della sottocartella in cui si trovava il tuo sito.
Dopo averlo fatto, non ci resta che salvare le modifiche al file htaccess e verificare che il sito funzioni correttamente. Possiamo anche verificare che i reindirizzamenti siano corretti con un tool come Redirect checker.
Conclusioni
Abbiamo visto come fare per cambiare la directory di un sito WordPress. Quando creiamo un sito in una sottocartella e poi vogliamo spostarlo nella root di dominio, dobbiamo eseguire un trasferimento dei file e non dimenticarci di aggiornare gli URL per far sì che tutto funzioni correttamente.
In alcuni casi, inoltre, dobbiamo anche prendere in considerazione la possibilità di impostare dei reindirizzamenti.
Hai mai spostato un sito WordPress? Lo hai fatto per poter lavorare ad aggiornamenti o modifiche in una sottocartella oppure per altri motivi? Facci sapere la tua esperienza nei commenti.
Lascia un commento