0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

.htsccessで正規化をしたときの見落としがちなポイント

Posted at

#記事を書こうと思ったわけ
ボランティアでお手伝いしている、あるクライアント様のウェブサイト管理。古き良き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行は挿入しておくこと。image-1.png
6行目と7行目に注目。空行が入っている。ただし、空白スペースは入れるとエラーになります。

##サーバーアップロード方式はアスキーモードで
モードを自動変換してアップしてくれるFTPクライアントばかりだと思いますが、あえてマニュアルであっぷすることもありかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?