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 http://www.miodominio.it/wordpress
e i sottositi della rete hanno come url qualcosa del tipo http://www.miodominio.it/wordpress/sottosito1 .
Adesso vuoi rimuovere ‘wordpress’ dall’url, in modo che il tuo sito sia visualizzabile all’url http://www.miodominio.it e i sottositi agli url del tipo http://www.miodominio.it/sottosito1
Tutti i file di wordpress, però, devono rimanere nella cartella ‘wordpress’ e continuerai ad accedere al backend di amministrazione da http://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 http://www.miodominio.it/prova devi sostituire ‘prova’ a ‘wordpress’ nella spiegazione sopra.