Stato documento: Beta
Anche se raggruppato sotto il nome "sistema di menù", il sistema si divide in due distinte parti:
- conversione dell'URI: da
/project/drupal
in ?q=node/121
- router: da
?q=node/121
all'esecuzione di codice che gestisce l'URI
Confuso? Vediamo ogni parte un po' più in dettaglio.
Conversione dell'URI.
Ogni pagina del nostro sito ha un URI. Per esempio http://drupal.org/project/drupal[/codefilter_code] che si divide in:
- protocollo:
http
- server:
drupal.org
- percorso:
/project/drupal
Il server (Apache o IIS per il protocollo http
nel nostro caso) viene chiamato e prima controlla se il percorso corrisponde ad un file, e se ha i permessi necessari per accederci. Questo, nel caso di Apache, lo fa anche tramite il famoso file .htaccess
. [Edit: aggiungi link a "cos'è .htaccess"]
Se tutto va liscio, il web server restituisce il file - un immagine, o file CSS per esempio. Altrimenti, se il file non esiste, il nostro tenace web server continua il suo tentativo di restituire qualcosa di utile, caminando lungo il percorso all'indietro. Se non trova /project/drupal
, controlla /project
, e poi /
. Nel nostro caso, all'indirizzo /
(detto anche root del sito) trova il file index.php
di Drupal, che il web server può eseguire.
Nel caso che non trovasse nulla di utile, il povero web server è costretto a restituire il codice 404 - che significa "Oops, non c'è", o nel caso che trovi il file ma non ha i permessi giusti, il codice 403 - che significa "Spiacente, ma non posso".