Impostare regole redirect nel htaccess

impostare redirect 301 file htaccess

Imparare a scrivere regole redirect nel file htaccess

All’interno del file .htaccess possono essere utilizzati vari metodi per reindirizzare le pagine.

Il metodo più semplice è il redirect 301, il quale sfrutta il mod_alias, ovvero  un modulo a cui fanno riferimento delle direttive che consentono di definire delle alternative nella digitazione delle URL, questo tipo di redirect non permette di utilizzare le espressioni regolari.

Altro metodo è il redirect match che sfrutta anch’esso il mod_alias ma permette di utilizzare le espressioni regolari.

Se vuoi vedere degli esempi, ti consiglio di dare un occhiata alle prime due regole definite nella sezione: redirect 301

 

Siccome i redirect sono un fattore molto importate per l’indicizzazione e il posizionamento di un sito, ti consiglio di affidarti ad un consulente seo esperto, che ti illustrerà, se occorre, il modo ottimale per impostarli.

 

Se vogliamo utilizzare l’htaccess per effettuare redirect più complessi utilizziamo il mod_rewrite.

Prima di tutto dobbiamo attivare il rewrite mediante la direttiva RewriteEngine On

RewriteEngine On

RewriteRule ^index[0-9].html$ http://sito.it/b.html [R=301,NC]

 

  • I simboli ^, $ indicano rispettivamente l’inizio e la fine dell’url.
  • [0-9] indica un numero compreso tra 0 e 9

Quindi, in questo caso tutte le url che hanno una url foramata da index seguito da un numero (es: sito.it/index5.html) viene effettuato il redirect.

 

Alla fine della regole abbiamo racchiuso alcuni parametri tra parentesi quadre. Ecco a cosa servono:

  • [R=301] –> indica il redirect 301
  • NC –> indica che l’url può essere case insensitive, quindi anche se scrivo IndEX.html l’url verrà reindirizzata
  • L –> indica che dopo questa riscrittura non deve essere eseguita nessun altra riscrittura

 


RewriteEngine On

RewriteRule ^index([0-9]).html$ http://sito.it/b$1.html [R=301,NC]

Se volessimo reindirizzare la pagina riportando anche il valore numerico, ci basterà inserire tra () la regola nella parte destra dell’url e inserire $1 nella parte sinista. In questo modo in $1 verrà inserito un valore compreso tra 0 e 9. Esempio:

sito.it/index3.html reindirizzato sito.it/b3.html

 


Secondo te a cosa reindirizzerà questa regole?

RewriteEngine On

RewriteRule ^pagina/([a-zA-Z]+)/a([0-9]).html$ http://sito.it/seo/b$1/b$2.html [R=301,NC]

 


Molto spesso capita di trovare la seguente regola:

RewriteEngine On

RewriteRule ^(.*)\.html$ http://sito.it/$1.php [R=301,NC]

 

  • (.*) indica che vado a prendere tutto il contenuto dell’url
  • \. Con questa notazione severe per impostare il carattere di escape. In fondo alla pagina viene indicato cos’è il carattere di escape

 


RewriteEngine On

RewriteCond %{HTTP_HOST} ^posizionamentomdr.it$

RewriteRule ^(.*)\.html$ http:// posizionamentomdr.it/$1.php [R=301,NC]

 

Prima di eseguire una rewrite url si possono inserire delle condizioni “RewriteCond“, e se verificate viene eseguita la RewriteRule, in questo caso dico: se l’host è posizionamentomdr.it esegui la regola inserita nel RewriteRule.

Se inseriamo più RewriteCond, la RewriteRule  verrà eseguita solo se tutte le condizioni sono verificate.

Se invece vogliamo che la RewriteRule venga eseguita anche se soltanto una condizione è verificata basta utilizzare l’operatore OR

RewriteCond %{HTTP_HOST} ^posizionamento.it$ [OR]

RewriteCond %{HTTP_HOST} ^posizionamentomdr.it$ [OR]

RewriteCond %{HTTP_HOST} ^posizionamentomotoridiricerca.it$

 


Precedentement abbiamo parlato di caratte di escape

Alcuni caratteri non vengono letti come caratteri letterali nelle espressioni regolari, ma come un operatore.

Di seguito vengono indicati alcuni caratteri speciali.

  • .
  • +
  • ?
  • \
  • *
  • ^
  • |
  • (“, “)
  • [
  • ]

 

Se si utilizzano tali caratteri nell’espressione regolare, è necessario utilizzare un escape facendo precedere al carattere un simbolo “\”. Ad esempio, se è necessario utilizzare le parentesi nel testo di un’etichetta, si può utilizzare questa proprietà di testo.

 

Comment (1)

Leave a Reply

Your email address will not be published. Required fields are marked*