Apple

Improving Apache's canonical hostname rewrite rules

According the the Apache URL rewriting guide, the way to handle Canonical Hostnames is like this:

RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://fully.qualified.domain.name/$1 [L,R]

Well, those rules are not always sufficient. Specifically, what if you also owned the www.example.com.au domain, and wished to redirect it also to the primary www.example.com domain? The solution is simple - we just need to add a single $ character to the end of the match-pattern of the first RewriteCond like this:

RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://fully.qualified.domain.name/$1 [L,R]

Now that will work nicely as long as the hosts use standard ports (ie 80 for HTTP, and 443 for HTTPS). However, some Python versions unnecessarily append the standard HTTPS port number to the Host HTTP header. Also I discovered today (after some Apache debug logging) that Adobe AIR applications have the exact same misbehavior for HTTPS, but only when running under Mac OS X.

Why I like the current iPhone craze

Most people who know me will be somewhat surprised by the title of this post... but it's true. I do, indeed, enjoy the current iPhone craze - simply because I think some good is likely come of it :)

Specifically, there's two main positive things that I think may come from the current iPhone craze:

Syndicate content