XREAでIf-Modified-Sinceが来たときLast-Modifiedは・・・
XREAのサーバを借りている。CGI側で親切にLast-Modifiedを返すようにしていたら、If-Modified-Sinceが来ると
500 Internal Server Error
を返すことがわかった。
NPHにすればいいとかいう記事を見たのだが、それにしてもおかしい。
いつもいつもおかしいわけではないのだ。
.htaccessに
AddHandler cgi-script-debug .cgi
を足して(実際は拡張子が違うのでこうは書いてないのですが)をつけてもエラーなし。だからCGIプログラムに問題はなさそう。
よくよく調べてみると、If-Modified-Sinceが来ると、Webサーバが勝手にLast-Modifiedを勝手につけてくれることがわかった。
従って、CGI側でLast-Modifiedを返すのはIf-Modified-Sinceが来ないときだけにしてみた。
200 OK
でもこれって、Last-Modifiedの意味がないような・・・
ともかく、NPHにして回避するっていうのも意味がわかった。
Webサーバに勝手にLast-Modifiedをつけさせないための手段だったのだ。
ちなみに、If-Modified-Sinceが環境変数HTTP_IF_MODIFIED_SINCEに入るってことを知るまで結構時間がかかったので、誰かのために書いておこう。