Redirect 301 con url dinamiche

In questo tutorial sull’htaccess utile ad ogni Programmatore affronteremo un caso specifico per l’utilizzo del mod_rewrite e del redirect 301 delle URL.

Immaginiamo che come Programmatore ci venga commissionato il restyling di un sito e che ci troviamo nella condizione di ottimizzare le url, di rendere dinamica la generazione delle URL o di installare una piattaforma CMS.

Se il sito  è stato indicizzato correttamente dobbiamo informare il motore di ricerca che le nostre URL hanno cambiato indirizzo, è in questo caso che viene in soccorso ad ogni Programmatore e Programmatore PHP che lavori su server Apache il file “.htaccess”.
Le regole generali da inserire all’interno del file sono le seguenti:

RewriteEngine on

RewriteRule ^vecchia_url.html$ nuova_url.php [R=301,L]

vecchia_url e nuova_url > sono gli indirizzi vecchio e nuovo che vanno sostituiti da quelli previsti dal Programmatore.

  • ^ e $ > vengono utilizzati per delimitare la stringa che va reindirizzata.
  • RewriteEngine on > informa il serever Apache che l’engine rewrite deve essere attivo
  • L > paragonabile al break, dice all’engine di fermarsi e di non controllare le altre regole.
  • R=301 > invia un header di contenuto spostato in modo permanente e crea il redirect.ù

Per capire meglio quello che abbiamo appena detto facciamo un esempio pratico:

# http://www.prova.com/sottocategoria.php?subcatid=1&lang=gr -301-> http://www.prova.com/folder/folder2/page2.html

#

RewriteCond %{QUERY_STRING} ^subcatid=1&lang=gr$

RewriteRule ^sottocategoria.php$ http://www.prova.com/folder/folder2/page2.html? [R=301,L]

Non penso ci sia bisogno di ulteriori commenti, a presto e per quasiasi dubbio chiedete pure.

Ah dimenticavo se utilizzate il file htaccess di un cms non dimenticate di inserire la stringa del redirect sempre prima delle regole di REWRITE, altrimenti il redirect non  funzionerà.

...
Loading