WordPress Multisito: modificare URL del sito

wp-multisito
 
Hai creato una rete di siti usando WordPress Multisite e hai installato WordPress all’interno della cartella ‘wordpress’ e non nella directory principale (che di solito negli hosting condivisi è ‘public_html’).

 

Quindi il tuo sito principale ha come url www.miodominio.it/wordpress
e i sottositi della rete hanno come url qualcosa del tipo www.miodominio.it/wordpress/sottosito1 .

 

Adesso vuoi rimuovere ‘wordpress’ dall’url, in modo che il tuo sito sia visualizzabile all’url www.miodominio.it e i sottositi agli url del tipo www.miodominio.it/sottosito1

 

Tutti i file di wordpress, però, devono rimanere nella cartella ‘wordpress’ e continuerai ad accedere al backend di amministrazione da www.miodominio.it/wordpress/wp-login.php.

 

Per la versione classica di WordPress puoi ottenerlo facilmente. Leggi QUI.

 

Per la versione multisito, invece,  devi fare alcune modifiche al database (usando phpMyAdmin, se ne hai accesso) e alcune modifiche a certi file.

 

Iniziamo dal DATABASE. Devi modificare le righe di alcune tabelle:

  • TABELLA wp_site
    localhost    /wordpress/   CAMBIA –>   /
  • TABELLA wp_blogs
    localhost    /wordpress/   CAMBIA –>   /
    localhost    /wordpress/sottosito1/   CAMBIA –>   /sottosito1/
  • TABELLA wp_options
    home    http://www.miodominio.it/wordpress   CAMBIA –> http://www.miodominio.it
  • TABELLE wp_#_options (per ogni sottosito che hai creato)
    siteurl    http://www.miodominio.it/wordpress/sottosito1   CAMBIA –>   http://www.miodominio.it/sottosito1
    home    http://www.miodominio.it/wordpress/sottosito1   CAMBIA –>   http://www.miodominio.it/sottosito1

 

Fai attenzione perché WordPress ha regole diverse per campi differenti:

  • le tabelle wp_site e wp_blogs NON devono avere http:// all’inizio né / (slash) alla fine
  • la tabella wp_options DEVE avere solo http:// all’inizio

 

Adesso passiamo ai FILE.
 
Devi modificare una riga del file wp-config.php (che si trova all’interno della cartella ‘wordpress’).

define('PATH_CURRENT_SITE', '/wordpress/');    CAMBIA -->    '/'

 

Poi devi copiare (NON spostare) il file index.php (che si trova sempre dentro la cartella ‘wordpress’) nella cartella principale (public_html, per intenderci) e devi modificarlo aggiungendo “wordpress” prima di “/wp-blog-header.php”. In questo modo:

require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );

 

Infine, devi creare un file .htaccess che contenga queste regole e metterlo sempre nella cartella principale (public_html)

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wordpress/$2 [L]
RewriteRule . index.php [L]

 

Bene, è fatta. Ovviamente non devo dirti (ma te lo sto dicendo) che la cartella ‘wordpress’ in cui avevi installato WordPress e in cui continuano a risiedere i core file di WordPress può avere qualsiasi nome.
 
Quindi se hai installato in www.miodominio.it/prova devi sostituire ‘prova’ a ‘wordpress’ nella spiegazione sopra.

 

WordPress Multisito: modificare URL del sito ultima modifica: 2014-05-10T12:48:13+00:00 da Adriana
Condividi Share on FacebookTweet about this on TwitterShare on Google+Pin on PinterestEmail this to someone

5 thoughts on “WordPress Multisito: modificare URL del sito

  1. cesare says:

    Ciao,
    leggendo la tua chiara spiegazione, ho pensato di scriverti per un problema direi molto simile a quello che hai esposto.
    Ho un sito wp multisite in locale che vorrei trasferire in remoto: il sito è ancora praticamente vuoto di contenuti.

    Ho installato il sito in locale in una cartella perchè ho molti altri siti nella root, quindi il sito in locale è localhost/nomecartella

    Vorrei capire quali modifiche devo apportare ai file wp.config.php, .htaccess e al database per fare in modo che il sito in remoto sia semplicemente miosito.com

    Ho letto in altre guide che è preferibile installare il sito in remoto nella root principale, però allo stesso tempo ho anche letto che quando devo sostituire le urls devo inserire il nome del dominio in remoto al posto di localhost, ma devo lasciare il nome della cartella, quindi nel database ho tutte le urls nel modo seguente: miosito.com/nomecartella

    queste urls però sono nel database, quindi nomecartella non deve comparire nella url che digito dal browser, ma fatto sta che il sito non lo riesco a vedere.

    Allora, ho creato una cartella in remoto con lo stesso nome della cartella in locale e ho inserito lì tutto il sito.
    Una volta fatto, il browser mi dice che non c’è il file index.php . Allora da locale ho trasferito dinuovo il file index.php nella root in remoto…ma ancora niente.

    Poi ho trovato che menzionava proprio questo passaggio ed eccomi qui a chiederti se la procedura che hai spiegato va bene anche per il mio caso, ossia trasferire il sito da una cartella in locale…..a remoto.
    Mi perdo sul punto se dover creare la stessa cartella in remoto oppure no…..e ovviamente vorrei che l’url del sito non renda visibile il nome della cartella.
    Spero in una tua risposta.
    Grazie in anticipo

  2. Ciao Adriana,

    vedo che l’articolo ha ormai più di un anno ma spero tu possa comunque rispondermi!

    Ho spostato un’installazione WordPress multisito così come hai descritto, da una sottodirectory alla root, e va tutto bene.
    Il problema è la parte di amministrazione che non funziona molto bene. Ad esempio se vado su un “sottosito” creato (in questo caso è identico a quello principale solo che è in inglese) e voglio modificare una pagina, mi vengono mostrate le pagine del sito principale. In questo modo non riesco mai a modificare ciò che voglio.

    Ci sono problemi di altro tipo, ad esempio se dal menù in alto vado su “gestione network” mi appare un bel “Internal Server Error”.

    C’è altro da modificare per caso? O forse è meglio spostare l’installazione (intendo tutti i file) per evitare questo tipo di problemi?

    Ciao e spero tu possa aiutarmi!
    G

    • Adriana says:

      Ciao Giuseppe, i file e le righe del database da modificare sono quelli descritti nell’articolo. Oltre a consigliarti di ricontrollare attentamente tutto non saprei come aiutarti.
      Le cause possono essere diverse, ma è difficile capire senza guardare nel dettaglio.

    • anonimo says:

      Ho io la soluzione… Il problema è il file .htaccess copiato da questo post.
      Ti consiglio di copiare i dati direttamente dalle impostazioni di rete di wp. Infatti possono cambiare i nomi delle sottocartelle!

      RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) SOTTOCARTELLA/$2 [L]
      RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ SOTTOCARTELLA/$2 [L]

      La mia cartella non si chiamava wordpress, ma wp…

Lascia un commento

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