Login
Libri
Home Argomenti Generali Gli URL in CodeIgniter

Gli URL in CodeIgniter

Share

Di default gli URLs, in CodeIgniter, sono disegnati per essere search-engine e human friendly. Piuttosto che usare l'approccio standard "query string", sinonimo dei sistemi dinamici, CodeIgniter usa un approccio segment-based:

example.com/news/article/my_article

Note: L'opzione per gestire gli URLs nel formato query string URLs può essere abilitata, come descritto in seguito.

I Segmenti URI

Nell'approccio MVC, i secmentii dell'URL rappresentano solitamente:

example.com/class/function/ID

  1. Il primo segmento rappresenta il controller, la classe cioé che dovrebbe essere invocata.
  2. Il secondo segmento rappresenta la funzione della calsse, il metodo, richiamta..
  3. Il terzo, ed ogni altro segmento aggiuntivo, rappresentano invece l'ID e le altre variabili che sono passate al controller.

La class URI e l'Helper URL contengono funzioni che rendono semplice il lavoro con gli URI. In aggiunta, i tui URLs possono essere rimappati usanto l'URI Routing.

Rimuovere il file index.php

Di default, il file index.php verrà incluso nei tuoi URLs:

example.com/index.php/class/function/ID

E' possibile rimuovere facilmente questo file utilizzando il file .htaccess con alcune semplici regole. Qui di seguito, un semplice esempio di come, usando il methodo "negativo", ogni chiamata viene ridirezionata ad eccezione di quelle specifiche:

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

Nell'esempio precedente, ogni richiesta HTTP oltre a quelle per index.php, images e robot.txt è trattata come una richiesta per il file index.php.

Aggiungere un suffisso all'URL

Nel proprio file config/config.php può essere specificato un suffisso che che CodeIgniter aggiungere ogni volta che verrà generato un URL. Per esempio, se si ha il seguente URL:

example.com/index.php/products/view/shoes

Opzionalmente sarà possibile aggiungere un suffisso, come .html, così che la pagina apparirà:

example.com/index.php/products/view/shoes.html

Abilitare i Query Strings

In alcuni casi potrebbe essere preferibile utilizzare gli URLs nel formato query string:

index.php?c=products&m=view&id=345

CodeIgniter supporta questa funzionalità, la quale può essere abilitata nel file application/config.php. Se si apre il file config si potranno vedere le seguenti righe:

$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';

Se si cambia "enable_query_strings" in TRUE quesa funzione sarà attivata. Controllers e funzioni saranno così accessibili attraverso le parole "trigger" che si sono impostate per richiamare i proprio controllers e metodi:

index.php?c=controller&m=method

Please note: Se si sta utilizzando la funzione query strings si dovranno costruire i propri URLs da soli, invece di utilizzare gli helpers URL (e oltri helpers che creano URLs, come alcuni helpers form) che sono stati creati per lavorare con URLs segment based.

Ultimo aggiornamento ( Sabato 13 Marzo 2010 07:16 )