anydat.so

anydat.soとは、datファイルへのアクセスに応対するApacheDSOモジュールです。
Apacheの一部であり、CGIではありません。

目的

read.htmlの導入によって、通常のブラウザがdatファイルへ直接アクセスするようになりました。
しかしファイルへ直接アクセスした場合、CGI等でのページ表示に比べ、行える応答制御に限界があります。
そこで、通常のApacheの設定では行えない機能を実現するために導入されました。

  • アクセスされたdatファイルが無く、過去ログにあったとき、過去ログの案内を表示する
  • IE6がShift_JISのファイルの扱いに不備があるため、XML化して対策
  • mod_headersが使えないサーバでのヘッダ制御

レスポンス

ステータスコード条件内容・備考
200通常通常
User-Agent「MSIE 6」<?xml version="1.0" encoding="Shift_JIS"?>
<text><![CDATA[

dat内容
]]></text>

datに緑字部分を付加
203も同様
203過去ログhtml1と最終レスの内容と過去ログ案内
過去ログhtmlURLと過去ログ案内
302User-Agent「Monazilla/」
現役dat無し
後述
404スレッド無し404 Not Found
専用ブラウザの除外
datファイルが無かったときのレスポンスが導入前と変わることで、専用ブラウザへの影響と混乱が考えられるため、本来は専用ブラウザ側で対応すべきところ、経過措置として従来と同じレスポンスが返るようになっています。

.htacessの設定

<IfModule mod_rewrite.c>
<Files *.dat>
    RewriteEngine On
    RewriteCond %{DOCUMENT_ROOT}/test/anydat.so -f
    RewriteRule .* /test/anydat.so
</Files>
</IfModule>

datファイルへのアクセスは全てanydat.soを通していることになります。

旧pastdat.so

pastdat.soは、anydat.soの前身で過去ログ案内専用として作られました。

<Files *.dat>
    ErrorDocument 404 /test/pastdat.so
</Files>

と設定することで、アクセスされたdatファイルが無かったときだけ呼び出されて過去ログ案内を返していましたが、現役のdatファイルにもDSOモジュールが必要になり、機能拡充してanydat.soとなりました。

開発

開発者
◆cZfSunOs.U

経過

  • 2006/07/25 - read.htmlプロジェクト始動
  • 2006/08/29 - pastdat.so作成
  • 2006/12/07 - anydat.so作成
  • 2007/05/13 - 全サーバ導入

過去ログ


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS