L’uso del mod_rewrite è una pratica molto diffusa e il “routing degli URL” è alla base di molti framework PHP.
Per routing degli URL intendo associare a miosito.tld/aaa/bbb/ccc/ddd
l’azione bbb del controller aaa passando i parametri ccc e ddd.
Per esempio per un blog, per poter modificare un post l’URL potrebbe essere miosito.tld/admin/edit/mio-id-post
.
Arrivare fino a questo passo è abbastanza facile.
In pratica si riscrivono gli URL tipo miosito.tld/etc/etc
in miosito.tld/index.php/etc/etc
.
Per fare ciò bisogna ricorrere alla configurazione del webserver.
Si otterrà quindi la variable PHP $_SERVER['PATH_INFO']
. Se non la ottenete potete usare anche $_SERVER['REQUEST_URI']
eliminando il prefisso del sito (Flatpress utilizza questo metodo).
Supponiamo di avere in $url
allora la parte con i parametri.
Ora divido l’URL con le slash in modo da ottenere un array con tutti i vari parametri.
$url=explode('/', $url);
Arrivati a questo punto ci sono due diversi metodi per continuare: il primo è eliminare tutti gli elementi vuoti ovvero quelli creati per esempio dalle doppie slash, il secondo è quello di tenerli però pulire l’array in modo da avere almeno i primi due elementi pieni. … [Leggi il resto]