Codeigniter: SEO URL rewrite con il framework php

Lunedì, Marzo 31, 2008 22:34 scritto da neryo

SEO URL rewrite con il framework php Codeigniter

Questo tip mostra come é possibile effettuare la riscrittura delle URL a scopi SEO (indicizzazione e ottimizzazione motori di ricerca) in modo molto semplice utilizzando il framework php Codeigniter.

Per riscrittura delle url si intende fare un rewrite delle url inserendo parole chiavi relative alle argomentazioni della pagina e mapparle direttamente sul controller che la gestisce. Questo perché tipicamente c’é una corrispondenza uno a uno tra le url e il corrispondente controller (classe/metodo).

Per effettuare le prime riscritture ipotizziamo di avere tre pagine: la “Home”, la pagina “Chi siamo” e “Cosa facciamo” che hanno un corrispondenza con la classe controller Home, Chisiamo e la classe Cosafacciamo. All’interno della cartella /system/application/config apriamo in prima istanza il file routes.php

In questo file troviamo due routes riservate:

  1. $route[‘default_controller’] = "home";
  2. $route[’scaffolding_trigger’] = "";

in quella di default_controller mettiamo il nome del controller della pagina che si deve aprire per prima quando si accede alla index del sito.

Poi possiamo definire infinite nuove route che ci mappano i nomi dei controller delle pagine a nuovi nomi che saranno le nuove url ottimizzate:

  1. $route[‘azienda-vinicola’] = "chisiamo";
  2. $route[‘azienda-produzione-vino’] = "cosafacciamo";

E’ possibile inoltre postporre ai nomi degli url dei suffissi come .html o .php modificando sempre in /system/application/config nel file config.php.

  1. $config[‘url_suffix’] = ".html";

In questo modo potremmo accedere alle varie pagine utilizzando url di questo tipo:

www.tuosito.com/index.php/azienda-vinicola.html
www.tuosito.com/index.php/azienda-produzione-vino.html

Chiaramente se sul nostro server apache abbiamo il supporto mod_rewrite attivo, sarebbe consigliabile anche eliminare dalla url il riferimento inutile al file index.php, utilizzando un file .htaccess come questo esempio:

  1. RewriteEngine on
  2. RewriteCond $1 !^(index\.php|images|robots\.txt)
  3. RewriteRule ^(.*)$ /index.php/$1 [L]

In questo modo avremmo completato in modo semplice e veloce la riscrittura delle url nel nostro sito web realizzato con il framework Codeigniter e potremmo quindi accedere alle pagine in questo modo:

www.tuosito.com/azienda-vinicola.html
www.tuosito.com/azienda-produzione-vino.html

Da ricordare inoltre che la funzionalitá di routing offerta da Codeigniter, permette di utilizzare anche espressioni regolari che permettono di aumentare la flessibilitá e la potenza di questo metodo. Ecco un esempio:

  1. $route[‘products/([a-z]+)/(\d+)’] = "$1/id_$2";

Ogni commento, spunto, consiglio é sempre ben accetto! ;)

Riferimenti:
http://codeigniter.com/user_guide/general/routing.html
http://codeigniter.com/user_guide/general/urls.html

Ringraziamenti:
Al mio amico omonimo che mi ha dato lo spunto per scrivere questo articolo.

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (2 voti, media: 5 di 5)
Loading ... Loading ...

3 Risposte a “Codeigniter: SEO URL rewrite con il framework php”

  1. Davide dice:

    17-11-2008 alle 09:51

    Ciao! molto interessante grazie :) :)
    Una domanda:
    una volta che ho creato il routing verso una pagina come il ‘cosafacciamo’,
    affinche’ i motori di ricerca indicizzino il link del tipo ‘azienda-produzione-vino.htm’, devo piazzare un collegamento che la punta in un’altra pagina? o e’ sufficiente che il collegamento sia del tipo: ‘http://www.miosito.it/cosafacciamo’ ?

    Grazie mille

  2. admin dice:

    17-11-2008 alle 09:57

    si chiaramente non è trasparente al crawler del motore di ricerca che http://www.tuosito.com/index.php/azienda-produzione-vino.html esiste.. deve essere per forza da qualche parte nel tuo sito linkata… ad esempio nel menu. Cosi se crei un sitemap.xml del tuo sito viene rilevato quel link ed inserito nei link apparteneneti al tuo sito e quindi delle pagine indicizzate. Non sarebbe corretto usare entrambi gli url che puntano alla stessa pagina, ma solo quello ottimizzato che contiene le keyword di posizionamento, per evitare penalizzazioni… ciao neryo

  3. Davide dice:

    17-11-2008 alle 10:34

    Benissimo, era questo il mio dubbio. Grazie ;)

Lascia una commento

(*) campi obbligatori

Spam protection by WP Captcha-Free