In questo articolo parleremo di URL Rewrite, utilizzando il mod_rewrite in htaccess.
Nella scorsa lezione abbiamo già visto come effettuare un redirect 301, ma se si ha l’esigenza di reindirizzare in modo definitivo le richieste da un vecchio dominio verso uno nuovo, è più corretto utilizzare il mod_rewrite.
Trovate la documentazione ufficiale al seguente link: mod_rewrite.
Questo modulo lo trovate già installato nei servizi di hosting.
Però è consigliabile utilizzare il blocco If Module mod_rewrite.c così, se per qualsiasi motivo il modulo non dovesse essere attivo, il codice digitato all’interno non viene considerato.
URL rewrite esempi
Facciamo quindi un esempio di URL Rewriting.
Supponiamo quindi di voler reindirizzare il vecchio sito alla nuova URL: www.nuovaurl.it.
Innanzitutto inseriamo il blocco If Module mod_rewrite.c e all’interno specifichiamo di attivare il RewriteEngineimpostandolo ad On.
RewriteBasedefinisce il percorso di base da applicare alle regole di riscrittura.
Dopo inseriamo la RewriteRule, in cui specifichiamo l’URL Rewriting utilizzando le espressioni regolari (“regular expressions”, Regex).
Quindi RewriteRule definisce le regole di riscrittura, la forma dell’URL, i flag come lo status code HTTP da restituire, ed altri parametri.
Così tutte le richieste dell’intero sito web saranno reindirizzate verso la nuovaurl specificata.
Possiamo anche utilizzare il RewriteCond, ad esempio chiedendo che tutto il traffico che non arriva al nuovo dominio è reindirizzato comunque sul nuovo dominio.
Quindi utilizzo RewriteCond per impostare le condizioni da esaminare prima dell’applicazione di una regola di riscrittura.
Analizziamo quindi alcune espressioni regolari utilizzate nell’esempio sopra:
Espressioni regolari
Spiegazione
^
Sta ad indicare l’inizio di una stringa.
$
Indica la fine di una stringa.
(.*)
L’asterisco indica una sequenza numerica qualsiasi in un URL. Le parentesi salvano la sequenza numerica in una variabile.
$1
Rappresenta una variabile che consente di accedere ai valori memorizzati temporaneamente, salvati utilizzando le parentesi.
?
Indica 0 o 1 istanze di uno o una sequenza di caratteri.
.
Indica un carattere qualsiasi.
*
Indica 0 o N istanze di uno o una sequenza di caratteri.
\
Il backslash è utilizzato sia come carattere di escaping, sia per specificare abbreviazioni di sequenze di caratteri.
Vediamo anche il significato dei flag specificati dentro le parentesi quadre.
Flag:
R – Redirect – [R] indica al web server di eseguire un re-indirizzamento esterno di default tramite codice di stato 302. Quindi se dovesse venir inviato un altro codice, dobbiamo aggiungerlo: ad esempio [R=301].
F – Forbidden – [F] indica al web server di inviare al browser il codice di stato 403, cioè Forbidden. Indica dunque un accesso proibito.
G – Gone – [G] indica al web server di inviare al browser il codice di stato 410, Gone. Inoltre segnala che il sito richiesto non è più presente all’indirizzo inserito.
L – Last – [L] indica al web server di non eseguire altri comandi dopo la RewriteRule attuale. Nella maggior parte dei contesti, ciò significa che se la regola corrisponde allora non verranno elaborate ulteriori regole.
NC – Nocase – [NC] Indica di non prestare attenzione alle lettere maiuscole o minuscole, quando un URL rispetta le condizioni per il rewriting.
C – Chain – [C] indica di considerare la RewriteRule successiva, solo se si verifica la condizione attuale.
Riscrivere un URL dinamico
Supponiamo adesso di riscrivere un URL dinamico, come ad esempio questo: http://www.miodominio.it/a/prodotti.php?categoria=miacategoria
in un URL statico come questo: http://www.miodominio.it/categoria/miacategoria.
Ecco dunque il codice d’esempio:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/categoria/(.*)$ /a/prodotti.php?categoria=$1
</IfModule>
Cioè, se un utente inserisce l’URL statico http://www.miodominio.it/categoria/miacategoria, il web server lo riscrive grazie a quanto specificato nel mod_rewrite (gli utenti non lo vedono) in http://www.miodominio.it/a/prodotti.php?categoria=miacategoria.
URL Rewriting da non www a www
Facciamo adesso un altro esempio di re-indirizzamento dagli URL senza www alla versione con www:
Coding Natale – In questa lezione svilupperemo una semplice animazione in Scratch per augurare Buon Natale!
Utilizziamo una poesia di Madre Teresa di Calcutta.
È Natale ogni volta che sorridi a un fratello e gli tendi la mano. È Natale ogni volta che rimani in silenzio per ascoltare l’altro. È Natale ogni volta che non accetti quei principi che relegano gli oppressi ai margini della società. È Natale ogni volta che speri con quelli che disperano nella povertà fisica e spirituale. È Natale ogni volta che riconosci con umiltà i tuoi limiti e la tua debolezza. È Natale ogni volta che permetti al Signore di rinascere per donarlo agli altri.
Per lo sviluppo dell’esempio ‘coding di Natale con Scratch’ utilizzeremo principalmente la tecnica dello scambio dei messaggi.
Infatti grazie a questa tecnica posso gestire la tempistica dei messaggi che ciascun personaggio recita.
Creare la scena
Prepariamo la scena inserendo lo sfondo e gli sprite necessari.
Scuriamo un pò il paesaggio utilizzando il riempimento.
Dopo inseriamo gli sprite:
Avery, Dani, Star e Heart.
Poi duplichiamo Dani altre due volte e ogni volta scegliamo un costume diverso.
Aggiungiamo un’animazione alla stella prima di duplicarla.
Clicchiamo sullo sprite stella e lo rimpiccioliamo, scegliendo come dimensione 40.
Dopo clicchiamo su costumi. Quindi con il tasto destro scegliamo duplica in modo da ottenere un secondo costume che poi andremo a modificare, come da figura sotto.
Modifichiamo dunque la seconda stella semplicemente ruotandola di poco, tramite la freccia di rotazione che compare in basso dopo averla selezionata, come da figura sotto.
Quindi inseriamo il seguente codice per creare una semplice animazione.
Innanzitutto scegliamo quando si clicca sulla bandierina verde e poi inseriamo subito dopo un ciclo per sempre. All’interno del ciclo ripetiamo le seguenti istruzioni:
1. Passa al costume star
2. Attendi 0.5 secondi
3. Passa al costume star2
4. Attendi 0.5 secondi
Come da figura sotto:
Adesso duplicate le stelle quante volte desiderate.
Svilupperemo il resto del codice gestendo i messaggi.
Quindi facciamo parlare per prima Avery che, dopo un messaggio introduttivo, invia a tutti messaggio1, che rappresenta il via per un altro sprite.
Infatti facciamo partire Dani3 (scegliete pure uno sprite qualunque dal quale iniziare la poesia) quando riceverà messaggio1.
Dani3 una volta terminato il messaggio a sua volta invia a tutti messaggio2 che viene intercettato da un altro sprite, ad esempio Dani2 che farà lo stesso dopo aver terminato di recitare.
Codice Personaggi
Ecco dunque di seguito il codice di ciascun personaggio. Partiamo da Avery:
Il codice su Dani:
Codice su Dani2:
Codice su Dani3:
Abbiamo inserito il codice nascondi perché al termine facciamo apparire un cuore che a mano a mano si ingrandirà nascondendo i personaggi.
Ecco il codice sul cuore:
Infine creiamo un sottofondo musicale aggiungendo la musica ciclicamente nello sfondo.
Abbiamo sviluppato un semplice esempio di coding con Scratch con il tema del Natale.
In questa lezione su Scratch esempi di programmazione ci eserciteremo con l’istruzione di selezione e le animazioni dello sfondo e dello sprite.
Scratch esempi di programmazione
Data una temperatura T, visualizzare se si tratta di una temperatura: “sotto zero”, “zero” oppure “sopra lo zero”.
Oltre a realizzare l’algoritmo creiamo anche una semplice animazione con gli sfondi e i costumi dello sprite scelto.
Quindi innanzitutto scegliamo quattro sfondi in Scratch a piacere.
Ad esempio io ho scelto: Blue Sky, Artic, Boardwalk e Slopes.
Aggiungeteli uno alla volta cliccando sull’icona in basso a destra come da figura:
Dopo averli inseriti cliccate sulla linguetta sfondi in alto a sinistra:
Dovreste avere questi 4 sfondi come da figura (se è presente lo sfondo bianco cancellatelo).
Dopo scegliamo uno sprite con dei costumi in modo da poterli cambiare durante l’esecuzione del nostro semplice programma. Io ad esempio ho scelto Giga.
Scratch esempi di programmazione – Sviluppo del codice
Adesso cominciamo ad aggiungere i nostri blocchi allo sprite selezionato.
1. Innanzitutto inseriamo il blocco quando si clicca sulla bandierina verde.
2. Dopo impostiamo il costume e lo sfondo di partenza. Quindi andiamo su Aspetto e scegliamo passa al costumegiga-b e anche passa allo sfondoBlue Sky.
3. Dopo chiediamo in input la temperatura e la memorizziamo nella variabile temperatura.
4. Adesso facciamo i confronti. Andiamo dunque su controllo e scegliamo il blocco se allora altrimenti.
5. All’interno dello spazio vuoto trasciniamo il blocco esagonale con il simbolo maggiore e impostiamo la prima condizione: temperatura maggiore di 0. Se la condizione è vera allora scegliamo di fare le seguenti operazioni:
– andiamo su Aspettoe innanzitutto scegliamo il blocco direper visualizzare in output il messaggio ‘la temperatura è maggiore di 0 ‘. Dopo cambiamo il costume a giga-ce infine passiamo allo sfondo Boardwalk.
Se invece la condizione è falsa allora controlliamo con un altro blocco se allora altrimenti che la temperatura sia minore di zero e se tale condizione è vera:
– andiamo su Aspettoe scegliamo il blocco direper visualizzare in output il messaggio ‘la temperatura è minore di 0 ‘. Dopo cambiamo il costume a giga-d e infine passiamo allo sfondo Artic.
Altrimenti, l’unica opzione rimasta è che la temperatura sia uguale a zero. Facciamo senza ad inserire dunque un altro se e invece eseguiamo le seguenti operazioni:
– andiamo su Aspettoe scegliamo il blocco direper visualizzare in output il messaggio ‘la temperatura è uguale a 0 ‘. Dopo cambiamo il costume a giga-a e infine passiamo allo sfondo Slopes.
6. Inseriamo il blocco Ferma tutto.
In questa sezione ‘Scratch esempi di programmazione’ abbiamo affrontato un semplice esempio.