Loghi angular e lighttpd

Angular e Lighttpd, come configurare il web server

Angular ed il refresh delle pagine

Questo articolo nasce da un problema che ho riscontrato utilizzando Angular per la realizzazione di applicazioni front-end. Infatti ho notato che spesso le configurazioni degli application server non permettono il refresh delle pagine non di root (es: al refresh della pagina miaappangular.it tutto ok ma al refresh di miaappangular.it/dashboard si ottiene un 404 ).

Per ovviare a questo problema le soluzioni sono due:

  1. Ripristinare l’hash routing con -in pieno stile AngularJS;
  2. modificare le configurazioni del web server.

Visto che il metodo 1) non mi piace, in questo articolo parlerò delle configurazioni lato server, in particolare di Lighttpd.

Angular e le configurazioni lato server per Lighttpd

La guida di Angular sulle configurazioni lato server è disponibile a questo indirizzo: https://angular.io/guid e/deployment ed è molto semplice e precisa.

Nella guida però si parla dei maggiori application server (Apache, Nginx, IIS… ) ma non di Lighttpd.

Visto che in molti server che utilizzo hanno installato Lighttpd, ho dovuto trovare una soluzione, che in realtà è stata molto semplice.

Oltre alla configurazione base:

server.modules = (
    "mod_access",
    "mod_alias",
    "mod_accesslog",
    "mod_compress",
    "mod_redirect",
    "mod_rewrite",
)

E’ bastato infatti aggiungere nelle configurazioni questa semplice riga:

url.rewrite-if-not-file = (“(.*)” => “/index.html/$0”)

Questa specifica funziona sulle installazioni nella root di dominio, se invece l’applicazione si trova in una cartella interna (es.: miosito.it/angular) si dovrà avere una configurazione simile alla seguente:

url.rewrite-if-not-file = (“/miacartella/(.*)” => “/miacartella/index.php/$0”)

Fatto ciò, basterà riavviare il demone Lighttpd ed il gioco è fatto!

0 comments on “Angular e Lighttpd, come configurare il web serverAdd yours →

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *