anydat.so
anydat.soとは、datファイルへのアクセスに応対するApacheのDSOモジュールです。
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 | 過去ログ未html | 1と最終レスの内容と過去ログ案内 |
過去ログhtml化 | URLと過去ログ案内 |
302 | User-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 - 全サーバ導入
過去ログ