Apache2.4: .htaccess を編集したら、サーバーにアクセスできなくなった

Webサーバーへのアクセスコントロールを行うために、Webディレクトリーの .htaccess に setenvif 文を追加しました。

そこまでは良かったのですが、.htaccess を編集したのでテストするために、自分のデバイスで、自分のサイトをアクセスしてみたら、「Internal Server error」で自分さえもアクセスできない!え~~。

.htaccess を編集した階層ではなく、一つ上のページにアクセスしてみると問題なし。

どうも、編集した .htaccess に問題がありそう。よくあるのが、クウォートの閉じ忘れ。しかし、追加した行を見ても問題なさそう。

http-error.log を見てみるとヒントになる情報が記録されていました。

[core:alert] [pid 32462] [client 157.55.39.167:43712] /notes/.htaccess: No comments are allowed here

どうも、コメント行の書き方に問題がありそうとわかりますが、今回コメント行は編集していないはず。

Web検索してみたところ、情報が見つかりました。

Apacheのバージョンを上げたら「Internal Server Error」

ありがとうございます。

.htaccess の中のコメントを、コマンドに続けて書くと、この症状になるそうです。

例えば、

deny from env=chk_url  # define label

というように、コマンドとコメントを同じ行に書いちゃダメ ってこと。しかし、今回、そんな書き方をした行はありません。

今回編集していないところに問題の記述があるの?と、下の方の記述を見てみると、以前記述した行にコマンド途中からコメントにした行がありました!
この行から #以降を消したら、Internal Server Error は出なくなり、サーバーは正常に戻りましたが、なぜ突然、過去の記述がエラーになるようになったの?

記述がキャッシュされているのかな?Apache 2.2 から 2.4 への更新はやっかいです。過去の記述と書式が変わっているところが多くて、もう何年も前にアップデートしたのに、今頃、エラーになる箇所がありますからねぇ。

一つ問題を解決したら、次のトラブルに出会うという、いつものメンテナンスの話でした。

Comments

  1. 改行コードが混在してるかもしれないとか思ってみたりする

コメントを残す