X



トップページ運用情報
981コメント351KB
read.js 2006ーJavaScriptはCGIの夢を見るか -2-
■ このスレッドは過去ログ倉庫に格納されています
0008root▲ ★垢版2006/11/19(日) 02:21:37ID:???0?PLT(20002)
即死を防ぐために、サーバ側での設定項目のまとめを。
0009root▲ ★垢版2006/11/19(日) 02:23:46ID:???0?PLT(20002)
○前準備

1) mod_charset_lite モジュール(SunOS さんスペシャルバージョン)の導入

Apache に mod_charset_lite モジュールを導入する。
このモジュールは Apache についていて、ports から導入可能であるが、
SunOS さんのパッチを当てたものを入れる必要がある。
0010root▲ ★垢版2006/11/19(日) 02:25:57ID:???0?PLT(20002)
2) WITH_EXTRA_PATCHES ありの libiconv の導入

ports から libiconv を入れる際に、WITH_EXTRA_PATCHES ありの
ものを入れる(入れ替える)必要がある。
これにより、cp932 なキャラクターの取り扱いの不備が修正される。
0014root▲ ★垢版2006/11/19(日) 02:31:59ID:???0?PLT(20002)
○Apache の設定追加

1) mod_charset_lite 有効化

# for charset conversion of read.html
# この mod_charset_lite.so は、SunOS さんがパッチしたスペシャルバージョン
LoadModule charset_lite_module libexec/apache2/mod_charset_lite.so
0015root▲ ★垢版2006/11/19(日) 02:35:30ID:???0?PLT(20002)
2) datx/ と dat-utf8/ で dat を参照できるようにする

・datx/ は、Cache-Control: ヘッダを追加するため用
・dat-utf8/ は Cache-Control: ヘッダを追加し、かつ UTF-8 で dat を参照するため用

# httpd.conf でないと設定不可
<Location /*/datx/*.dat>
AddDefaultCharset Shift_JIS
Header always append Cache-Control max-age=5
</Location>
<Location /*/dat-utf8/*.dat>
SetOutputFilter XLATEOUT
CharsetSourceEnc CP932
CharsetDefault UTF-8
CharsetOptions NoImplicitAdd IgnoreIlSeq
AddDefaultCharset UTF-8
Header always append Cache-Control max-age=5
</Location>
0016root▲ ★垢版2006/11/19(日) 02:37:29ID:???0?PLT(20002)
3) test/bbs-utf8.cgi で bbs.cgi を参照できるようにするための設定(その1)

・read.html からの投稿用

<Location /test/bbs-utf8.cgi>
SetInputFilter XLATEIN
CharsetSourceEnc CP932
CharsetDefault UTF-8
CharsetOptions NoImplicitAdd IgnoreIlSeq
</Location>
0017root▲ ★垢版2006/11/19(日) 02:41:44ID:???0?PLT(20002)
4) バーチャルホスト部分への追加項目(その1)

# vitrual host for life7.2ch.net
<VirtualHost 206.223.152.55:80>

</VirtualHost>

のところに以下を追加。

これにより datx/ や dat-utf8/ で、dat が参照できるようになる。

# あらかじめ mod_rewrite を有効にしておく必要がある
RewriteEngine On
# ここは httpd.conf でないと設定不可
AliasMatch ^/(\w+)/dat(?:x|-utf8)/(\d+\.dat)$ /home/ch2xxx/public_html/$1/dat/$2
# 雪だるまでは上記 AliasMatch の代わりに RewriteRule で.
# RewriteRule ^/(\w+)/dat(?:x|-utf8)/(\d+\.dat)$ http://xxxb.2ch.net/$1/dat/$2 [P]
Alias /test/bbs-utf8.cgi /home/ch2xxx/public_html/test/bbs.cgi
0018root▲ ★垢版2006/11/19(日) 02:44:32ID:???0?PLT(20002)
5) バーチャルホスト部分への追加項目(その2)

4) の下に続けて以下を追加。

# コメントの内容にいまいち自信がないので、適切な文章に修正お願いします。
# > SunOS さん

# ここからは .htaccess でも設定可能
# index.html / subback.html 中の JavaScript で URL 書き換えの代わりに
# Cookie の設定をして,(in bbs.cgi)
# 鯖側ではその Cookie があった場合に mod_rewrite で read.cgi という
# URL のまま read.html の内容を返す,(下2行)
RewriteCond %{HTTP_COOKIE} (?:^|;\s?)READJS="?on"?(?:$|;)
RewriteRule /?read\.cgi(/.*)?$ /test/read.html$1
# 検索エンジン等から来た場合や、 Cookie がなかった場合などに、
# read.html にとばすための設定
RewriteCond %{HTTP_USER_AGENT} MSIE\s(?:[6-9]|\d{2,})\D|rv:(?:1\.(?:[89]|\d{2,})|[2-9]|\d{2,})\D.*Gecko/|Opera/(?:[89]|\d{2,})\D
RewriteCond %{HTTP_REFERER} ^http://
RewriteCond %{HTTP_REFERER} !^http://(?:\w+\.)?(?:2ch\.net|bbspink\.com)/(?:\w+/(?:|(?:subback|index)\.html)$|test/read\.(?:html|cgi)[#/]?)
RewriteCond %{HTTP_COOKIE} !(?:^|;\s?)READJS="?off"?(?:$|;)
RewriteRule /?read\.cgi(/.*)?$ /test/read.html$1
0019root▲ ★垢版2006/11/19(日) 02:49:02ID:???0?PLT(20002)
6) ディレクトリ部分への設定

<Directory "/home/ch2xxx/public_html">

</Directory>

のところに以下を追加。

これにより「過去ログ倉庫に・・・」を表示するための dso(pastdat.so) が
動作するようになる。

# for read.html
# see http://qb5.2ch.net/test/read.cgi/operate/1153819270/793-794
# ここからは .htaccess でも設定できる
<Files *.dat>
ErrorDocument 404 /test/pastdat.so
</Files>
# Following 4 lines must be comment out for snowman backend
<Files pastdat.so>
AddDefaultCharset Shift_JIS
Header always append Cache-Control max-age=5
</Files>
0020root▲ ★垢版2006/11/19(日) 02:50:20ID:???0?PLT(20002)
以上、のはず。

抜けがあったり、説明が間違っていたりした場合、
補足・指摘をよろしくお願いいたしますです。> SunOS さん、他各位

これで 20 まで伸ばしたので、即死はないかなと。
本日はたぶんここまでで。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況