1000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Supporto dell'URL rewriting
La riscrittura dell'URL sul momento è una tecnica che mira a modificare il nome che appartiene alle pagine Web ma la modifica è effettuata soltanto dagli indirizzamenti virtuali del nuovo nome (apparente) verso il nome precedente (non visibile al visitatore). Il nome della pagina non cambia di per sé.
Questo serve in generale per rendere il nome delle pagine più "pulite" nascondendo i parametri di URL passati alle pagine dinamiche ad esempio. Nessuno può visualizzare se si tratta di pagine dinamiche con URL aggiunti. Oltre a essere utile per il visitatore, questo è di grande interesse per il referenziamento delle pagine Web perché i motori di ricerca in generale non prendono gli URL con troppi parametri.
Azioni da effettuare
1. Riscrivere il nome delle pagine
Trasformare l'URL della pagina "article.php?id=25& categorie=4&page=3" in "article-25-4-3.html" oppure "titre-article-25-4-3.html". Ecco il contenuto del file .htaccess che permette di realizzare questa operazione, consentendo che il file article.php si trovi nella directory web/admin/ del server.
Options +FollowSymlinksRewriteEngine onRewriteBase /admin/RewriteRule ^article-([0-9]*).([0-9]*).([0-9]*).html$ article.php?id=$1&categorie=$2&page=$3 [L]
La riga "Options +FollowSymlinks" permette di seguire i link simbolici e non è sempre necessaria.
La riga "RewriteEngine on" permette di attivare mod_rewrite di Apache, ovvero di attivare la scrittura di URL.
La riga "RewriteBase /admin/" permette di definire una volta per tutte la directory in cui lavoriamo con i file che seguono (article.php, ecc.).
La riga "RewriteRule", che può sembrare un po' più complessa, è una riga da aggiungere a ciascun URL che si vuole riscrivere.
Per il nostro esempio, ne abbiamo solo una che si scompone come segue:
Il primo carattere "^": indica l'inizio del nome di file virtuale da reindirizzare.
Il carattere "$" dopo ".html ": indica la fine di questo nome di file virtuale.
Ciascun raggruppamento di "([0-9]*)": si basa sulle espressioni regolari e indica che sarà presente una successione di numeri da 0 a 9 che e poi verrà recuperata per essere collocata nella variabile corrispondente "$1", "$2" e "$3" che si vede alla fine della riga.
Il segno "[L]" significa una fine di riga, ovvero la fine della regola da riscrivere per questo elemento.
Quando un visitatore del sito richiede la pagina "article-25-4-3.html ", il file .htaccess lo reindirizza automaticamente verso la pagina "article.php?id=25&categorie=4&page=3" senza che gli sia visibile.
Attenzione: anche se le regole di scrittura di URL sono in atto e funzionano correttamente, è sempre possibile accedere alle pagine utilizzando il vecchio URL con i parametri. Da qui la necessità di modificare tutti i link del sito Internet per ottenere un nuovo formato.
Per fare delle regole di scrittura più complesse, fare riferimento alla documentazione di Apache sull'URL rewriting.
2. Reindirizzamento permanente verso un secondo dominio
Nel caso in cui si possiedono più domini per uno stesso sito e si desidera farli comunicare, è possibile reindirizzare tutte le richieste di apertura delle pagine verso un altro dominio in modo che il dominio principale sia visualizzato nella barra degli indirizzi. Ad esempio se "www.domaine.xyz" e "www.mon-domaine.xyz" puntano verso lo stesso sito e il primo citato è il dominio principale, il contenuto del file .htaccess da mettere nella root del primo è il seguente:
RewriteEngine On RewriteRule ^(.*)$ http://www.mon-domaine.xyz/$1 [R=301]
Questo consente di recuperare il nome di ciascuna pagina denominata su "www.domaine.xyz" e di aprirla su "www.mon-domaine.xyz" in modo chiaro per l'utente. [R=301] significa reindirizzamento permanente.