サポートが数日かけて調べてくれたので間違い無いと思います。タイトル通りXServerではIf-Modified-Sinceを受け取れません。ついでにIf-None-Matchも受け取れません。いろいろとあーでもないこーでもないと試したり調べたり2日ほど費やしましたが、受け取れないで確定です。
$_SERVER内にも存在しないし、getallheaders()にもありません。Xアクセラレータやブラウザキャッシュなどの設定も関係ありません。.htaccessを修正しても無駄のようです。
主に動的に生成している画像に関して、クライアントから送られてきたIf-Modified-Sinceを受け取り、データ内容の更新日と比較して変更がなければ304 Not Modifiedを返そうとしてたんですが・・・、夢叶いませんでした。
というわけで画像はCache-ControlとExpiresをちょっと長めの値にして対処することにしました。画像が更新されたらURLの末尾に?v=1とかつける感じですかねぇ。めんどくさいけど毎回更新日時見るよりいいかもしれませんね。
EC2なんかだとこの辺りももちろん自由自在なんですが、そこはやっぱりレンタルサーバーなんで、いろいろ制限はありますよね。でも圧倒的に管理が楽なので、こういう趣味のサイトならもうレンタルサーバーでいいです。

コメントを残す