Snap.Shot.cx

トップページへ戻る

[Zope] HEADリクエストに答えるSquishdot
04/29/2002 19:32 (投稿者:たかの)

Squishdotというか、これはZope全般の話。
HEADリクエストをアテられた場合、Zopeはコンテンツの更新時刻ではなく、DTMLドキュメントやDTMLメソッドのタイムスタンプを返す。ので、HEADリクエストで更新チェックをかけにくるアンテナやWWWCには全く意味が無い。
これ、何度も説明したつもりなんだけど一向に減らないんだな。

そもそも、動的更新バリバリのサイトの更新状況をチェックする了見てどうよ?と思ったのだけど、見たいというんだからしょうがない。ということで、重い腰を上げてみた。
グダグダ書くつもりはないので、これ見てピンときてくれ(無責任)。

RewriteCond %{HTTP_USER_AGENT} !^MyMirrorTool
RewriteCond %{REQUEST_METHOD} ^(GET|HEAD)$
RewriteRule ^/ - [E=GENERAL_BROWSE:YES]

RewriteCond %{REQUEST_URI} =/ [OR]
RewriteCond %{REQUEST_URI} =/index_html
RewriteCond %{ENV:GENERAL_BROWSE} =YES
RewriteRule ^/(.*) /var/httpd/snap.shot.cx/docs/index.html

RewriteCond %{REQUEST_URI} =/rdf
RewriteCond %{ENV:GENERAL_BROWSE} =YES
RewriteRule ^/(.*) /var/httpd/snap.shot.cx/docs/rdf.xml

ちょっとだけ解説すると、User-Agentとして「MyMirrorTool」てのをよこしたヤツのみホンモノを返して、それ以外のクライアントには予め用意してあるstatic fileを返すのだ。

もうひとつ、メソッドを(GET|HEAD)に限定してるのもポイント。これをやらないと、Squishdotへの投稿もstatic fileが受け取ることになって、投稿ができなくなっちゃうのだ。

えっ、上の記述は何かって?static fileはどうやって作るのかって?それは宿題ということで。


ともあれ、これで無事HEADリクエストに対してLast-Modifiedが返すようになった。
更新頻度がやたら多いので、びっくりするんじゃないかしら。取れるようにしたけど、ホント、意味ないと思うよ。

メールでコメント

(Powered by Zope)
リンクはご自由にどうぞ。各記事には記事番号がついていますので、URLは変わりません。
© 2000-2013 Yukimasa TAKANO, all RIGHTs reserved.