Supponiamo di utilizzare un web server Apache e di aver recentemente rinominato la pagina principale del sito da foo.html in bar.html. Per implementare una forma di retrocompatibilità con il vecchio indirizzo, senza far notare agli utenti che le pagine sono state rinominate, possiamo utilizzare mod_rewrite. In questa mini guida, quindi, vi mostrerò come implementare in Apache il modulo rewrite, che consente il reindirizzamento verso un nuovo URL, senza che l’indirizzo cambi nel browser degli utenti, ai quali sembrerà di visitare sempre il vecchio URL. La guida si basa su Ubuntu 20.04.
Apache mod_rewrite
Come primo step aggiornate il sistema ed installate il web server, ove non presente:
apt-get update apt-get upgrade apt-get install apache2
Procedete avviando il servizio con il comando systemctl start apache2. Per capire come funziona quest’ultima istruzione, vi rimando alla guida apposita che abbiamo pubblicato tempo fa qui su LFFL. Una volta configurato il sistema, vi sarà possibile abilitare la mod che è già preinstallata, di default, in apache. L’istruzione da utilizzare in tal caso sarà sudo a2enmod rewrite. Dopo questa direttiva procedete al riavvio del servizio con systemctl restart apache2.
Per quanto riguarda le regole di riscrittura, avete due soluzioni. Scriverle direttamente nel file di configurazione principale di Apache, oppure, ed è la scelta consigliata, utilizzare un file .htaccess all’interno di ogni sito web. Per impostazione predefinita, Apache non consente di utilizzare tale file. Quindi dovrete prima abilitarlo:
sudo nano /etc/apache2/sites-available/000-default.conf #### codice da aggiungere al file aperto in nano #### Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted
Riavviate nuovamente il servizio con systemctl restart apache2. Recatevi nella directory contenente il vostro sito web, ad esempio nano /var/www/html/ e create il file .htaccess contenente la seguente regola:
RewriteEngine on RewriteRule ^home$ home.html [NC] #NC sta per case insensitive
in cui home.html è il file effettivo a cui reindirizzare gli utenti che visitano, in questo esempio, localhost/home.
Dubbi? Domande? Per maggiori informazioni sul funzionamento di mod_rewrite, vi rimando alla documentazione ufficiale.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.