.htaccessを更新したらWebサイトが真っ白に

焦った……。本当に原因が見た目でわからなかったので冷や汗をかいた話。.htaccessに処理を追加したく、ちょっとした追加処理なのでWindowsのメモ帳でささっと編集して保存。そしてアップロードしたところWebサイトが真っ白に!「あれ?!記述間違ったかな?」とにかく元に戻さねば!と思い、追加修正した個所を削除してアップロードしなおしてもWebサイトは真っ白……私の頭の中も真っ白……。と、とにかくエラーログを見なければ!

エラーログに「Invalid command」?

エラーログを見たところ以下のようなエラーが出力されていました。

.htaccess: Invalid command '\xef\xbb\xbf#', perhaps misspelled or defined by a module not included in the server configuration, referer: https://xxxx.com

「Invalid command」無効なコマンド?そしてそのあとの「’\xef\xbb\xbf#’」。どうやらこの文字列が原因の模様。ファイルの文字コードはUTF8で、”EF BB BF”はどうやら「BOM(Byte Order Mark)」の印らしい。

バイトオーダーマーク (英: byte order mark) あるいはバイト順マーク(バイトじゅんマーク)は通称BOM(ボム)といわれる、Unicodeの符号化形式で符号化したテキストの先頭につける数バイトのデータのことである。このデータを元にUnicodeで符号化されていることおよび符号化の種類の判別に使用する。

なるほど、Windowsのメモ帳で保存したときにBOMがテキストの先頭についたので、Invalid command(無効なコマンド)と怒られたわけか。これを削除すればいいのね。

ファイルからBOMを削除

削除する方法はいろいろあるのですが、私はPHPStormを使っているのでエディタに削除をお願いしました。ファイルを右クリックして「Remove BOM」を選択するとBOMが削除されます。

Windows10のメモ帳の機能改善でBOMなしUTF-8がデフォルトになった模様。メモ帳のアップデートってどうやってやるんだろう?