Vi potrebbe capitare, come è successo a me, di voler far dipendere un qualche “aggiornamento” del vostro sito ad una particolare condizione legata alla data/ora. Penso a date fatidiche come Natale o Capodanno, ma anche il lancio di un prodotto, di un evento. O più in generale contenuti diversi per giorni diversi della settimana.
Quando le regole di scheduling non sono particolarmente evolute, ci viene in aiuto il file .htaccess di Apache in modo incredibilmente efficiente. In particolare sto parlando delle capacità del mod_rewrite di riscrivere le URL in funzione di determinate condizioni. In parole povere:RewriteEngine on
per attivare il motore di riscrittura. Poi si può indicare la condizione che deve essere verificata. A titolo d’esempio:RewriteCond %{TIME_DAY} ^.6
RewriteRule mele.jpg pere.jpg
ha l’effetto, nel giorno 6 del mese, di restituire “pere.jpg” anziché “mele.jpg”. E’ una piccola cosa, ma diventa più importante se pensiamo di estenderla anche a pagine web/php e nel caso di più giorni:RewriteCond %{TIME_DAY} ^.6
RewriteRule index.php index_lunedi.php
RewriteCond %{TIME_DAY} ^.7
RewriteRule index.php index_martedi.php
RewriteCond %{TIME_DAY} ^.8
RewriteRule index.php index_mercoledi.php
consente di riscrivere la generica pagina index.php in pagine specializzate in funzione del particolare giorno. Ovviamente il mod_rewrite contiene ogni ben di Dio come:TIME_YEAR
current four-digit year
TIME_MON
current month (0-11)
TIME_DAY
current date
TIME_HOUR
current hour (0-23)
TIME_MIN
current minute (0-59)
TIME_SEC
current second-count (0-59)
TIME_WDAY
current week-day (0-6)
TIME
a formatted string representing the time ex. 20070710212132
Per cui è possibile costruire combinazioni favolosamente evolute come questo esempio, che mostra un file o l’altro alternandoli ogni 30 secondi.RewriteEngine On
RewriteBase /
RewriteCond %{TIME_SEC} <30
RewriteRule ^dream/?$ /promo.php [L] RewriteCond %{TIME_SEC} >29
RewriteRule ^dream/?$ /promo1.php [L]
Se la cosa vi stuzzica e pensate possa semplificarvi il lavoro per aggiornare automaticamente il server H24 senza avere una persona a disposizione, potete approfondire qui:
http://www.askapache.com/htaccess/time_hour-rewritecond-time.html