SEO, Mod Rewrite · 4 min read · Jan 02, 2026
Gli Utili Usi Di Mod Rewrite
Gli Utili Usi Di Mod Rewrite
Autore: Mike Ems
In questo tutorial, insegnerò cos’è mod rewrite e alcuni esempi dei suoi usi. Mod rewrite è uno strumento potente e uno dei modi più semplici per rendere il tuo sito web più SEO friendly.
Cos’è Mod Rewrite?
Mod rewrite è una parte dei server apache che può riscrivere gli URL richiesti al volo. Poiché supporta un numero infinito di regole che a loro volta hanno condizioni di regola illimitate, è molto flessibile e un importante meccanismo di manipolazione degli URL. Può essere utilizzato per gli utenti di internet e per URL amichevoli per i motori di ricerca. Questo aumenta la possibilità che il sito web basato su database venga indicizzato.
Abilitare / Installare Mod Rewrite
La prima cosa che vogliamo fare è assicurarci di avere mod_rewrite sul nostro server. Per impostazione predefinita, Apache ha mod_rewrite installato, ma non abilitato. Il modo più semplice per testare se mod_rewrite è abilitato sul tuo server è creare un file .htaccess in una directory di test come /modrewrite-test/.htaccess con il seguente contenuto:
Options +FollowSymLinks
RewriteEngine OnOra prova a navigare nella sottodirectory. Potrebbero succedere due cose:
- Nessun errore Congratulazioni, il motore mod_rewrite è ora abilitato.
- 500, Errore Interno del Server Se ricevi questo messaggio, significa che mod_rewrite non è stato installato/abilitato sul tuo server.
Se hai scoperto che mod_rewrite non era installato sul tuo server, segui questi passaggi.
- Trova il file httpd.conf (di solito lo troverai in una cartella chiamata conf, config o qualcosa di simile)
- All’interno del file httpd.conf decommenta la riga LoadModule rewrite_module modules/mod_rewrite.so (rimuovi il simbolo di cancelletto ‘#’ davanti alla riga)
- Trova anche la riga ClearModuleList decommentata, quindi assicurati che la riga AddModule mod_rewrite.c non sia commentata.
Dopo questi passaggi, riavvia il tuo server apache con il seguente comando.
/etc/init.d/httpd restartOra dovresti avere mod_rewrite abilitato con successo. Assicurati di testare di nuovo mod_rewrite una volta che il server apache è stato riavviato.
Utilizzare Mod Rewrite Per Rimuovere / Aggiungere Sempre WWW
Un problema facilmente risolvibile che molti siti web hanno è la duplicazione dei risultati nei motori di ricerca. In qualsiasi motore di ricerca, http://www.example.com/ e http://example.com sono due siti web completamente diversi. Questo è un grande problema perché il contenuto del tuo sito web viene identificato come contenuto duplicato, e questo abbassa il tuo posizionamento nei motori di ricerca. Utilizzando il nostro nuovo amico, mod_rewrite, possiamo affrontare questo problema.
In cima a qualsiasi file .htaccess, devi attivare Mod Rewrite. Questo dovrebbe sempre essere in cima al tuo file .htaccess. Devi attivare Mod Rewrite solo una volta.
RewriteEngine OnInoltre, devi impostare la tua Rewrite Base. Questa è normalmente la directory in cui si trova il file .htaccess. Se il tuo file .htaccess si trova nella tua cartella radice, la tua Rewrite Base apparirà così:
RewriteBase /Ora, ci sono due opzioni tra cui scegliere. Puoi scegliere di rimuovere sempre il www, o di mantenerlo sempre. Per rimuovere sempre www (il mio metodo preferito), crea un file .htaccess nella tua directory radice. All’interno di quel file, aggiungi il seguente:
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]Allo stesso modo, se desideri aggiungere sempre www, aggiungi il seguente al tuo file .htaccess:
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com$1 [R=301]Assicurati di cambiare example.com con il tuo dominio.
Utilizzare Mod Rewrite per Pulire Gli URL
L’uso più popolare di Mod Rewrite è utilizzarlo per pulire gli URL del tuo sito web. Come potresti sapere, i motori di ricerca non si prendono particolarmente cura degli URL con molti argomenti come molti siti web servono. Esempio:
http://www.example.com/index.php?p=aboutCon il potere del modulo mod_rewrite di apache, possiamo rendere questo URL molto più pulito.
http://www.example.com/about.htmlPer realizzare questo, vediamo il nostro buon amico le espressioni regolari. So che sei davvero entusiasta ora. Per realizzare la riscrittura sopra, ho aggiunto il seguente al mio file .htaccess dopo le righe di aggiunta/rimozione www.
RewriteRule ^([^/]+).html$ /index.php?p=$1 [QSA,L,NC]Diamo un’occhiata più da vicino a questa riga in modo da poter capire davvero cosa sta facendo.
([^/]+)Questa è l’espressione regolare per abbinare qualsiasi cosa tranne una barra obliqua. Questo è il modo più semplice per abbinare qualsiasi cosa che cadrà tra due barre oblique quando si tratta di riscrivere gli URL.
.htmlQuesto riscrive l’URL per avere .html alla fine. Questo dà l’apparenza di un normale file .html al tuo file php.
/index.php?p=$1Questa è la parte della riscrittura che è la posizione di origine. Ogni volta che hai un’espressione regolare nella prima parte che corrisponde a una certa stringa, dovresti averla referenziata in questa parte. Il $1 fa riferimento alla prima espressione regolare nella prima metà della riga. Quindi qualsiasi valore assegnato alla variabile p viene posizionato dove si trova la prima espressione regolare nella prima metà della riga.
Se desideri che il tuo URL appaia come una directory, utilizzeresti questa riga invece di quella fornita in precedenza.
RewriteRule ^([^/]+)/?$ /index.php?p=$1 [QSA,L,NC]Questo restituirebbe URL come questo:
http://www.example.com/about/Aggiungere una Barra Finale Ai Tuoi URL
Il punto principale di aggiungere una barra finale ai tuoi URL è che aumenta le prestazioni del server. Quando una barra finale viene aggiunta alla fine di un URL che non termina con un’estensione di file, indica al server di effettuare solo una chiamata a se stesso, riducendo così il traffico del server.
Per aggiungere sempre una barra finale a un URL che non termina con un’estensione di file, come http://www.example.com, aggiungi il seguente al tuo file .htaccess nella tua directory radice.
rewriteCond $1 !/$
rewriteCond %{REQUEST_FILENAME}/ -d
rewriteRule (.+) http://www.example.com/$1/ [R=301,L]La prima riga controlla se non c’è una barra finale. La seconda riga controlla se esiste una directory con l’URL fornito se viene aggiunta la barra finale. La terza riga aggiunge la barra finale e reindirizza l’utente.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.