Sposta WordPress in una sottocartella mantenendo TUTTI gli URL
Attualmente ho un sito su site.com con WordPress installato nella cartella principale. Il mio sito include pagine come:
- site.com
- site.com/page
- site.com/2015/10/01/post....
- site.com/login
- site.com/wp-content/uploads/...
Vorrei spostare tutti i file di WordPress in una sottocartella per organizzazione, SENZA MODIFICARE NESSUN URL pubblico. Altri post e il thread ufficiale di supporto parlano di "Dare a WordPress la sua propria directory" ma richiedono di cambiare gli URL:
- https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory (site.com caricherà la homepage, ma tutti gli altri URL pubblici cambieranno)
- Sposta WordPress in una cartella senza cambiare gli URL (domanda simile ma parla di installazioni multiple di blog)
Per favore consigliatemi se questo è possibile.
La procedura è ampiamente documentata nel Codex sotto Spostare un'installazione root nella sua directory.
C'è un fraintendimento riguardo alla modifica degli URL, e sì, la terminologia non è delle migliori. Gli unici URL che cambieranno sono quelli basati sull'"indirizzo WP". Si tratta essenzialmente dell'area di amministrazione di WordPress.
Tutti gli URL dei contenuti sono basati sull'"indirizzo del sito", seguendo questa procedura, che rimarrà alla radice del tuo sito.
Dal momento che vuoi mantenere gli upload al loro posto, puoi farlo conservando wp-content
nella root (separandola dalla cartella core) e modificando la configurazione di conseguenza. Vedi Spostare la cartella wp-content.

Ok, ecco come si fa:
- Sposta
wp-*
,index.php
,.htaccess
nella tua nuova cartellawordpress
Modifica
wordpress/.htaccess
:- Cerca questa riga:
RewriteRule . /index.php [L]
- Modificala così:
RewriteRule . /wordpress/index.php [L]
- Cerca questa riga:
Crea un nuovo file in
/path/to/www
chiamato.htaccess
e aggiungi questo:
RewriteEngine on RewriteRule ^$ https://www.example.com/ [L] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^/wordpress/index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /wordpress/$1 [L] </IfModule>

Metodo per spostare i file di Wordpress in un'altra cartella (directory) senza modificare la configurazione di Wordpress, ovvero in modo completamente trasparente per Wordpress:
- crea una directory dove verrà spostata l'installazione di Wordpress, ad esempio "sitedir"
- sposta l'installazione di WP, incluso
.htaccess
, nella nuova directory creata - modifica il file
.htaccess
nella directory root del sito (probabilmente public_html) e inserisci le seguenti direttive:
RewriteEngine On RewriteBase / # reindirizza a ./sitedir/ RewriteCond %{http_host} ^example\.com$ RewriteCond %{request_uri} !^/sitedir(/.*)$ RewriteRule ^(.*)$ /sitedir/$1 [L,QSA] # extra, reindirizza www.example.com a example.com RewriteCond %{http_host} ^www\.example\.com [NC] RewriteRule ^(.*) http://example.com/$1 [R=301,L]
Sostituisci "example.com" con il tuo dominio e "sitedir" con il nome della cartella in cui sarà posizionato WP.
