ただいまメンテナンス中です、の実装

どんなURI相手でも同じメンテナンス画面を出すWebサーバを作るには。という話。Apacheですよ。

DocumentRoot /path/to/empty
ErrorDocument 404 /path/to/empty/sorry.html
ErrorDocument 403 /path/to/empty/sorry.html

だいたいこんな実装が思いつく。/path/to/empty には、ただいまメンテナンス中です、というHTMLだけを置く。中に画像を貼るなら img src="/path/to/hoge.jpg" などとフルパス指定をしないとうまく画像が出なかったりはするが、けっこうお手軽にメンテナンス中ですが出せて便利。
が、IEの設定では「エラードキュメントの簡易表示」という奴が標準になっていて、404や403を作りこんでもそいつは表示してもらえない。(GETは投げるくせに。なんて奴だ。)
そこで要件は「何が来ても同じコンテンツを返す」から「何が来てもちゃんと存在したことになって、同じコンテンツを返す」ということに変わる。変えられたんだよね。IEのクソ標準設定なんか知らねぇよ、と言いたかった。でもこの考え方はエンジニアとしては底辺。
で、解決策です。超簡単。

AliasMatch .* "/path/to/sorry.html

こんだけ。どんなURIが来ても /path/to/sorry.html にエイリアスされちゃう。sorry.html さえ間違えずに置けば、404にも403にもならずに同じコンテンツが返るというわけで。