htaccess: RewriteRule multipli con un RewriteCond
ATTENZIONE!
Il post ha più di 2 anni e le informazioni contenute
potrebbero essere obsolete (ad esempio a causa di un
aggiornamento di versione rispetto agli elementi descritti
o links modificati da siti esterni).
Utilizzando le direttive rewrite all'interno dei files htaccess è possibile gestire i rewrite impostando una o più condizioni tramite RewriteCond.
Ad esempio:
RewriteCond %{HTTP_HOST} !^www.nomesito.it$
RewriteRule /pagina1 http://www.nuovosito.com/pagina1 [L,R=301]
Se ci sono diverse pagine che devono essere gestite duplicare la struttura RewriteCond/RewriteRule per 10 / 100 volte non è molto comodo, soprattutto se poi si devono fare modifiche.
Per evitare di scrivere righe in più e per rendere più leggibile il codice è possibile utilizzare l'istruzione "skip" che permette di saltare N elementi di tipo RewriteRule se la condizione non è vera.
Ecco un esempio veloce:
RewriteCond %{HTTP_HOST} !^www.nomesito.it$
#se la condizione non è vera esegue lo skip di S righe
RewriteRule .? - [S=4]
RewriteRule /pagina1 http://www.nuovosito.com/pagina1 [L,R=301]
RewriteRule /pagina2 http://www.nuovosito.com/pagina2 [L,R=301]
RewriteRule /pagina3 http://www.nuovosito.com/pagina3 [L,R=301]
RewriteRule /pagina4 http://www.nuovosito.com/pagina4 [L,R=301]
Nel caso in cui ci siano più istruzioni è sufficiente modificare il numero in S=4 in base agli elementi inseriti.
Commenti