Redirect based on time of day
Problem:
You wish to serve different content depending on what time of day it is
Recipe:
RewriteEngine on RewriteCond %{TIME_HOUR}%{TIME_MIN} >0700 RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900 RewriteRule ^/foo\.html$ /foo.day.html [PT] RewriteRule ^/foo\.html$ /foo.night.html [PT]
Discussion:
This ruleset will rewrite /foo.html to /foo.day.html between 0700 (7am) and 1900 (7pm), and will rewrite it to /foo.night.html the rest of the time. The RewriteCond causes the following RewriteRule to be skipped if the condition is not met, which is how we end up with an if ... else kind of syntax.
Serve a contest page during a contest
Problem
Serve a contest page during a contest, but don't bug people with it more than once a day.
Recipe
RewriteCond %{TIME} >20050701080000 RewriteCond %{TIME} <20050705170000 RewriteCond %{HTTP_COOKIE} !frontdoor=yes RewriteRule ^/index\.html$ /contest.html \ [R,CO=frontdoor:yes:.apacheadmin.com:1440,L]
Discussion
If the date is between the two values (8am on July 1 and 5pm on July 5) and if they haven't already come through the front door, redirect /index.html to /contest.html and set a cookie for a day so that they don't have this happen again until tomorrow.