Cerca

Regole di Rewrite utili per siti web


permalinkAbbiamo già incrociato i RewriteRule per i permalink di WordPress, quando si trattava di capire qual’era l’URL più utile e amichevole da utilizzare per un blog gestito con il noto CMS.

Questo promemoria riguarda invece gli utilizzi più frequenti delle regole di RewriteRule su un sito web, indipendentemente dal fatto che si utilizzi un CMS o meno, l’unica condizione è di utilizzare Apache e di avere il modulo Rewrite attivo (lo è di default).

Le regole di Rewrite possono essere scritte nel file di configurazione di Apache (sconsigliabile), nel file di configurazione del virtualhost (già meglio ma non il massimo), oppure in un file .htaccess situato nella directory principale del sito, soluzione da preferire per praticità.
Se non esiste, creiamo il file di testo .htaccess e come prime righe ci scriviamo:

# Inizio .htaccess
RewriteEngine On
RewriteBase /

Ora siamo pronti per inserire tutte le istruzioni che ci servono. Molte sono utili per ottimizzare l’indicizzazione del sito nei motori di ricerca, altre invece sono importanti per impedire abusi o limitare l’utilizzo di certe risorse, ma si possono anche correggere errori causati da pagine, cartelle e sottodomini non più disponibili.

Come in qualsiasi file di configurazione di Apache, se vogliamo scrivere di tanto in tanto dei commenti, che potrebbero tornarci utili, basta iniziare la riga con un cancelletto (#).

Possiamo ad esempio reindirizzare tutte le richieste da miosito.it a www.miosito.it, in modo da non penalizzare l’indicizzazione ed evitare contenuti duplicati.
Per fare questo basta aggiungere queste istruzioni:

# Reindirizzamento da miosito.it a www.miosito.it
RewriteCond %{HTTP_HOST} ^miosito.it [NC]
RewriteRule ^(.*)$ http://www.miosito.it/$1 [L,R=301]

Abbiamo cambiato il nome ad una directory, da www.miosito.it/cartella1/ a www.miosito.it/cartella2/?
Nessun problema, questa semplice regoletta risolve tutto:

# Reindirizzamento da cartella1 a cartella2
RewriteRule ^/cartella1/(.*) http://www.miosito.it/cartella2/$1 [R=301,L]

Infine, possiamo evitare che le immagini del nostro sito possano essere indebitamente visualizzate su altri siti, il famigerato HotLinking, aggiungendo al danno la beffa di rubarci pure la preziosissima banda:

# Evitare Hotlinking
RRewriteCond %{HTTP_REFERER} !^http://(.+\.)?miosito\.it/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpe?g|gif|bmp|png)$ http://www.miosito.it/cuccato.png [L]

La regola come nell’esempio qui sopra funziona con i file con estensione gif, jpg, png, jpg e jpeg, e al posto delle immagini mostra una immagine realizzata ad arte, il file cuccato.png situato nella radice del nostro sito (il contenuto è a vostra discrezione…).

Con la giusta sintassi, e l’ausilio delle [W:espressioni regolari], è facile immaginare che le potenzialità e gli utilizzi del Rewrite e delle regole RewriteRule sono praticamente infinite, nei prossimi articoli ne vedremo delle altre.

Qualsiasi commento, correzione,  o esempio di utilizzo delle RewriteRule è ovviamente particolarmente gradito 😉

Condividi se ti è piaciuto!

Altri articoli che potrebbero interessarti:

Picture of Roberto Rota

Roberto Rota

Libero professionista, un "artigiano del web", lavoro nella comunicazione in rete da quando esiste Internet. Mi occupo principalmente di assistenza su WordPress e assistenza e consulenza WooCommerce, seguo la realizzazione di progetti web, in particolare siti di e-commerce, visibilità e comunicazione in rete. Il mio curriculum è su Linkedin, e mi puoi trovare anche su Instagram, FaceBook e Twitter.

DAI IL TUO CONTRIBUTO

Se il mio lavoro ti è stato di aiuto, contribuisci alla continuità di questo sito.
Basta una piccola donazione su PayPal, una pizza e una birra alla tua salute!

2 risposte

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.