#記事を書こうと思ったわけ
ボランティアでお手伝いしている、あるクライアント様のウェブサイト管理。古き良きHTMLで記述されていて、メンテに手間がかっていました。全てHTMLファイルになっているから、別パーツをインクルードするとかなかなかできないわけです。CMSで管理されているわけでもない。
なので、共通要素(たとえばグローバルナビゲーション)に変更を加える場合、全てのページの要素を更新しなきゃなりません。そして、これは往々にして、人為的なミスにつながることが多いです。
もっぱらPHPでサイトを作っていた僕としては、どうにかならんかと思っていて、ゆくゆくはPHPで管理できるようにしたいと考えていました。
その場合、拡張子は.phpとなります。すると、これまで.htmlでアクセスされていたURLを変更する必要が出てきてしまいます。そこで、これをコントロールする.htaccessで制御しなきゃならないなと思うに至りました。
ところが、原理はわかっていても、いざサーバーにhtaccessを上げてみると、Internal Server Error500が発生してしまいました。
どういうわけか全然わからず、これまで失敗続きだったわけですが、このたび、見事にそれをクリアしました。
ググれば、正規化の記述のしかたはたくさんありますが、あまり言及されてないポイントで引っかかったので、メモとして残します。
#.htaccessで見逃しそうなポイント
##文字コードはUTM-8(BOM無し)
.htaccessはテキストエディタで書くことが多いと思うので、そこでは必ずUTM-8を文字コードに指定しておく。このとき、BOM無しにしておくことが重要です。そうでないと、サーバーエラーが起こります。
##改行コードはLF
これも盲点でした。UNIX系の改行コードはLFを使うので、それに合わせて改行コードをLFにしておきます。
##最終行は空行にしておく
これをやっていなかったせいでサーバーエラーが生じていました。
最低1行は挿入しておくこと。
6行目と7行目に注目。空行が入っている。ただし、空白スペースは入れるとエラーになります。
##サーバーアップロード方式はアスキーモードで
モードを自動変換してアップしてくれるFTPクライアントばかりだと思いますが、あえてマニュアルであっぷすることもありかもしれません。