Spostare la root di un sito in una subdirectory
Durante lo sviluppo di un sito può esserci la necessità di spostare la root di un sito in una subdirectory del nostro spazio web. Un esempio può essere il noto framework PHP Laravel, che adopera la cartella public per ospitare i file pubblici da mostrare ai fruitori del sito.
Per effettuare tale operazione basta configurare correttamente il file .htaccess della root dello spazio web.
.htaccess
I file .htaccess sono dei file di testo contenenti le direttive di apache per la configurazione. Tali file funzionano in maniera semplice: apache quando riceve una richiesta, prima di eseguirla, verifica se esiste un file .htaccess nella cartella del file richiesto o in una cartella precedente, ed in tal caso lo legge e lo interpreta a run-time e si configura in modo da rispettare le direttive presenti all’interno di quel file. Apache ricarica il file ad ogni richiesta, ciò permette di modificare la configurazione in qualsiasi momento a run-time. L’ambito dei file .htaccess si restringe alla cartella nella quale è presente il file, quindi influenzerà tutti i file e le sottocartelle al suo interno.
Procedimento
A) Creare nel proprio pc un file di nome .htaccess e copiarci all’interno il contenuto di seguito sostituendo mydomain.com con il dominio del sito da modificare e subdirectory con il nome della cartella da adoperare.
# www.nullalo.com # .htaccess redirect del main domain ad una subdirectory # Non cambiate questa riga. RewriteEngine on # Cambia mydomain.com con il tuo main domain. RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ # Cambia 'subdirectory' con la directory che vuoi adoperare per il tuo main domain. RewriteCond %{REQUEST_URI} !^/subdirectory/ # Non cambiare le due righe di seguito. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Cambia 'subdirectory' con la directory che vuoi adoperare per il tuo main domain. RewriteRule ^(.*)$ /subdirectory/$1 # Cambia mydomain.com con il tuo main domain. # Cambia 'subdirectory' con la directory che vuoi adoperare per il tuo main domain # seguito da / ed il main file del tuo sito, index.html, index.php, etc. RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ RewriteRule ^(/)?$ subdirectory/index.php[L]
B) Fare un backup del file .htaccess presente nella root del proprio sito copiandolo in un posto sicuro.
C) Copiare il file creato nella root del proprio spazio web, nel caso di file già esistente forzarne la sovrascrittura.
D) Nel caso ci siano problemi ripristinare il file precedente. In tal caso sarà necessario fare un merge dei due file. Tale operazione varierà da spazio web a spazio web.
Nessun Commento