Area Clienti

esempi mod_rewrite Apache

Tu sei quì:
< Indietro

Il modulo mod_rewrite è probabilmente uno dei moduli apache più noti e diffusi: permette di gestire al meglio gli URL del nostro sito, personalizzando svariate opzioni utili nell’ambito dell’indicizzazione sui motori di ricerca dei contenuti. Il modo più usato per accedere alle impostazioni di questa componente del server consiste nel modificare il file .htaccess (il punto davanti indica che si tratta di un file nascosto, che solitamente è accessibile e modificabile anche mediante FTP), il quale deve essere posto nella cartella /public_html oppure, a seconda dei casi, /www.

Di seguito si riportano alcuni esempi utili da cui poter prendere spunto per configurare il proprio sito a seconda delle necessità: da tenere presente che 1) non è garantito che tutte le configurazioni funzionino su tutti i server e per tutte le tipologie di siti e CMS 2) se combinate più parti di esempi –  ad esempio due redirect differenti che devono funzionare sullo stesso sito- non è necessariamente sufficente fare copia-incolla ma bisogna “fondere” le configurazioni a formare un unico file con sintassi valida (si veda la documentazione ufficiale per maggiori informazioni).

#specifica la pagina di default del sito
DirectoryIndex miaindex.html

 

#redirect da alfa.html verso beta.php

RewriteEngine on

RewriteRule ^/?alfa\.html$ beta.php [L]

#redirect da tutti i file con estensione .html ad altrettanti .php

# ovvero : “cambia” o maschera l’estensione dei file

RewriteEngine on

RewriteRule ^/?([a-z/]+)\.html$ $1.php [L]

#nasconde l’estensione .PHP dal nome del file

RewriteRule ^/?([a-z]+)$ $1.php [L]

#redirect SEO-friendly

#da https://miosito.com/mostra.php?paese=ITALIA&regione=Marche&citta=Ancona

verso https://miosito.com/ITALIA/Marche/Ancona

 

RewriteRule ^/?([a-zA-Z_]+)/([a-zA-Z_]+)/([a-zA-Z_]+)$ mostra.php?paese=$1&regione=$2&citta=$3 [L]

 

#solo i seguenti IP possono accedere al tuo sito
allow from 64.95.219.140
allow from 210.23.45.67

 

# Redirect globale (di tutte le pagine) da vecchio.com oppure www.vecchio.com a nuovo.it
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.vecchio.com$ [OR]
RewriteCond %{HTTP_HOST} ^vecchio.com$
RewriteRule ^(.*)$ https://www.nuovo.it/$1 [R=301,L]

 

#evitare che il sottodominio1 sia accessibile, e re-direziona automaticamente al dominio principale
RewriteCond %{HTTP_HOST} ^sottodominio1\.dominio-principale\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.sottodominio1\.dominio-principale\.com$
RewriteRule ^(.*)$ “http\:\/\/www\.dominio-principale\.com\/$1” [R=301,L]

 

# Non consentire il prefisso .www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?miosito\.it)$ [NC]
RewriteRule .? https://%1%{REQUEST_URI} [R=301,L]

 

# Utilizza sempre il prefisso .www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .? https://www.%1miosito.it%{REQUEST_URI} [R=301,L]

 

# All’apertura del sito definisci una sotto-directory di default
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ /directory-default/ [R=301,L]
< /IfModule>

 

# Redirect da una vecchia cartella alla nuova
RewriteEngine on
RewriteRule ^/?vecchia([a-z/.]*)$ /nuova$1 [R=301,L]

 

# Utilizza sempre il protocollo https (SSL)
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.miosito.it/$1 [R=301,L]

 

# blocca il traffico dai referer indesiderati
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} sitospam1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} motorericerca2\.com [NC,OR]
RewriteCond %{HTTP_REFERER} forumspam3\.com [NC]
RewriteRule .* – [F]

 

# indica i tipi di file NON ammessi sul server
RewriteEngine on
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|exe|swf)$ – [F,NC]

 

# evita hotlinking delle immagini

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^https://(www\.)?miosito\.it/ [NC]

RewriteRule \.(gif|jpg|png)$ – [F]

About the Author