.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がデフォルトになった模様。メモ帳のアップデートってどうやってやるんだろう?