memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

macのhttpdとchromeの404ジャック対策

TLでCentOS5.6がリリースされたことを知り、研究室のWebサーバーをアップデートしようと思いました。一応、何かあっては困るのでバックアップ。。。5時間以上かかるらしい。。。その間にアクセスしてくれた方のためにエラーページくらい出さないと。。。と思い、machttpdを起動してみました。

手順はいたって簡単でGUIで簡単に起動できます。システム環境設定から共有を選択して下図のようにWeb共有をポチっとするだけです。ポチりなおすことでhttpdを再起動できるようです。この辺の話しはこちらを参考にしました。

で、DocumentRootはどこにあるか。。。httpd.confが/etc/apache2の下にあります。管理者権限が必要なのでsudoで編集します。操作は以下。管理者パスワードを設定していない人はググって設定してください。

sudo vi httpd.conf

で、DocumentRootは。。。以下のようになっていました。

DocumentRoot "/Library/WebServer/Documents"

Finderで見てみると、index.html.enというファイルがあるので、とりあえずファイル名をindex.htmlに書き換えてこのファイルを以下のように編集しました。

<?xml version="1.0" encoding="utf-8"?>
<html><head>
<meta http-equiv="Content-Type: text/html;charset=utf-8"/>
</head><body>
<h1>
http://swken.joho.fuk.kindai.ac.jp/<br><br>
ご迷惑をおかけして申し訳ありません。<br>
ただいま、サーバーメンテナンス中です。<br>
2011年4月14日12:00までに復旧予定です。<br>
</h1>
</body>
</html>

それでlocalhostにアクセスしてみると。。。おおっ表示されました。なかなkいいです。

で、トップページにアクセスする人はこれでいいのですが、中のページにアクセスするとエラーページが表示されてしまいます。リンク切れなのかサーバーダウンなのかメンテ中なのかこれではわかりません。そこで404ページを表示する設定をhttpd.confを見て確認しました。するとコメントアウトされていましたので先頭の#を取り除き、missing.htmlをindex.htmlに変更しました。

ErrorDocument 404 /index.html

で。。。ブラウザで見てみると「あれっ?エラーページが表示されない?」。ググってみると原因はこちらのようです。なるほどChromeの機能なのですね。対策も書かれていました。エラーページを512バイト以上にすればいいとのことでしたので&nbps;を512バイト以上になるまで入れました。

これでめでたくChromeユーザもエラーページ(メンテ中ですよーというページ)を見ることができました。めでたしめでたし。