Cambiare il dominio di wordpress

Cambiare il dominio di wordpress può essere un incubo, ma invece spostare un sito web è operazione da web master. Lui, il “master”, è in grado di fare questi incredibili passaggi tra un server e l’altro, usando SSH, FTP, teracopy e bla bla bla e ancora bla. Ma il suo compito è di trasferire il sito dal server A al server B. Ma se il cambio non deve essere tra macchine ma devo cambiare il dominio del sito? Il cliente ha cambiato ragione sociale e ora giustamente vuole cambiare il nome a dominio. Chiami il webmaster? no, fai tu. Se il sito è fatto in html/php/asp è abbastanza semplice. Scarichi tutto via FTP, “search dominio.old” e “replace con dominio.new”, carichi il tutto nel nuovo spazio hosting (o associ allo stesso anche il nuovo dominio) e via. Aggiungi due righe di redirect 301 e il gioco è fatto.  ….aaahhhh che bei tempi quelli…

Come cambiare il dominio di wordpress e non morire.

Ecco, con WordPress le cose si complicano un po’. Non di tanto, ma comunque non è più così semplice. Il CMS si basa sostanzialmente su un database MySQL e la cartella wp-content. Sono il vero cervello del sito/blog. Uno senza l’altro semplicemente non funziona. A parte tutti i dati presenti nel database, nella cartella wp-content troviamo tutti i files che l’utente ha caricato nel sito (sottocartella uploads), il tema in uso (themes) i plugin (indovina come si chiama la cartella?) e una serie di altre sottocartelle che possono o meno esserci.

Ma, cartella wp-content a parte, per spostare wordpress da un dominio ad un altro, dobbiamo sostituire all’interno del database il vecchio dominio.old con il nuovo dominio.new. Per chiarezza, se il tuo sito è www.dominio.com, dovrai sempre usare anche il www in tutte le future fasi

A) Search&replace nel file .sql

Questa è la pratica più sicura, anche se è la meno pratica:

  1. accedi via phpMyAdmin al database. Se non sai come si chiama il database, scarica una copia del file wp-config.php che trovi nella root, lì trovi il nome del database, il nome utente e la password. Se sei particolarmente sfortunato, potresti avere il database su un server remoto e quindi la faccenda si complica e devi sentire l’hosting. Se invece sei in localhost ma non hai l’accesso a phpMyAdmin, non hai problemi, basta scaricare l’ultima versione dal sito https://www.phpmyadmin.net e caricarlo via FTP nella root. Login e utente già li hai scoperti.
  2. esporta il database in formato SQL, con l’opzione di aggiungere l’istruzione DROP TABLE  / VIEW /… / …e in file (magari compresso che è più veloce), scaricherai così un file di tipo nomedatabase.sql.zip
    questa opzione è importante se vuoi cambiare il dominio di wordpress
  3. estrai lo zip e apri il file nomedatabase.sql con un editor di testo. Io su Mac uso Coda2 o Textwrangler . Su PC Notepad++ è altrettanto ottimo.
  4. Search & replace: cerchi http://dominio.old e sostituisci con http://dominio.new
    qua per cambiare il dominio di wordpress da quello vecchio a quello nuovo usando TextWrangler
  5. salvi e comprimi in formato nomedatabase.sql.zip
  6. se nel punto 2 hai messo il flag per aggiungere la cancellazione della tabella (DROP) allora puoi semplicemente importare il database .sql. questo cancellerà tutte le tabelle e caricherà le nuove.  Se per caso non hai selezionato l’opzione, dovrai prima di importare il database eliminare tutte le tabelle a mano (non ho detto svuotare, ma cancellare, occhio). Se il database è molto grosso, leggi questo articolo su come importare un file DUMP
  7. finito. WordPress risponderà così al nuovo indirizzo. www.dominio.new.

B) Search&replace direttamente nel MySQL

Qui le cose sono decisamente più veloci, ma anche più rischiose. Attento, qui non hai NESSUN BACKUP in caso di danno e ti consiglio questa pratica solo se il sito NON è OPERATIVO e se hai alle spalle almeno dieci migrazioni fatte con il primo metodo. Sei avvisato, non scrivermi nei commenti che non funziona più niente e che non hai capito come cambiare il dominio di wordpress. Considera che anche io uso questa tecnica solo se ho la certezza di non fare danni e comunque solo dopo aver scaricato una copia del database.

  1. apri phpMyAdmin (se non lo sai fare, non continuare, passa all’altro metodo, fidati)
  2. vai in SQL e inserisci:
    UPDATE wp_options SET option_value = replace(option_value, 'http://dominio.old', 'http://domino.new') WHERE option_name = 'home' OR option_name = 'siteurl';
    UPDATE wp_posts SET guid = replace(guid, 'http://dominio.old', 'http://domino.new');
    UPDATE wp_posts SET post_content = replace(post_content, 'http://dominio.old', 'http://domino.new');
    UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://dominio.old', 'http://domino.new');
  3. se dovesse risultare un errore, aspetta a buttarti dalla finestra, controlla il prefisso delle tabelle

.htaccess

Fatta l’operazione di FTP e di MySQL per cambiare il dominio di wordpress, il sito risponde ora correttamente al nuovo dominio, ma bisogna fare in modo che anche Google trovi la nuova strada e per farlo dovremo modificare il file .htaccess che si trova nella root del VECCHIO SITO:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^dominio.old$ [OR]
RewriteCond %{HTTP_HOST} ^www.dominio.old$
RewriteRule (.*)$ http://www.dominio.new/$1 [R=301,L]


Pubblicato

in

da

Tag: