nDiki : RewriteRule
Related term
2001年10月2日 (火)
■ Apache Proxy で アンテナの ?%MM%%DD%%HH%%TT% 除去

アンテナページの多くはリンクURLに更新日時を付加する。 例えば
http://www.naney.org/personal/diary/hns/
が、10月02日 14:46 に最終更新されているとう情報を取得すると
http://www.naney.org/personal/diary/hns/?10021446
という、URL を持つリンクをアンテナページに生成する。 ページが更新されるとURLも変化するので、(Mozilla, Internet Explorer 等の)以前にアクセスした事のあるリンクの色を変えるブラウザでは、更新されたことを確認しやすい。
が、これはキャッシュ proxy には仇になる。 更新されるたびにURLが変化するということは、そのURLごとにキャッシュが作られるということだ。 私の愛用の WWWOFFLE もご多分にもれずそうである。 私は3ヶ月間キャッシュを保持するようにしているから、一日に3度更新されるページをアンテナのリンク経由で見ると、約90のコピーがキャッシュされる事になる。 そして、最新以外のキャッシュは(通常)2度と利用されることもない。 もはや、その URL ではアクセスされないから。
これはもったいない。 ようは、アンテナ経由でのアクセスの ? 以下を削除してキャッシュすればいいのだが、WWWOFFLE にはあいにくそのような機能はない。 そこで、URL を書きかえる proxy をブラウザと WWWOFFLE の間にカマせようということになる。
Mozilla -> rewrite proxy -> WWWOFFLE -> target site
ここでは、Apache を rewrite proxy にすることにしてみた。 Apache は mod_proxy で proxy になるし、mod_rewrite で URL を柔軟に変更できる。 もともと、自分の Web サイトのチェック用にローカルマシンで Apache も常時起動しているので設定を変更するだけだ。
とりあえず、大抵のアンテナは ?と8桁の数字(「なつみかん」でいうところの?%MM%%DD%%HH%%TT%)を付加するので、これをもぎとればよい。 以下、httpd.conf の修正。
LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
とモジュールをそれぞれ有効にする。rewrite_module より proxy_module を先に Load するようにする(デフォルトでは逆順なので注意)。
そして、httpd.conf の最後に
ProxyRequests On ProxyRemote * http://127.0.0.1:8080/ NoCache * <IfModule mod_rewrite.c> RewriteEngine on #RewriteLog /tmp/rewrite_log #RewriteLogLevel 9 RewriteRule ^proxy:(.*)\?[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$ $1? [L] </IfModule>
を追加。ProxyRemote で、WWWOFFLE の proxy を指定。 RewriteLog, RewriteLogLevel はうまく書き替らない時に有効にしてログを確認するのに使う。 最後の RewriteRule で実際に書き替えを行う。 ポイントは $1? と、置換後の文字列指定で最後に ? をつけること。 これをつけないと query-string が削除されない(これに気がつくのに随分かかった)。
後はブラウザ側の http プロキシ先を 127.0.0.1:80 にすれば OK。
無条件に ?と8桁数字が末尾にくれば、取り除いてしまうので荒っぽい RewriteRule だ。 だが上記のような query string を使っているページは(多分)そうないから、とりあえず、これで良しとしよう。 困ったら直せばいい。
@ 追加リンク
- いやな日記:URL末尾の ?01234567 のような文字列を除去する
- (2004年3月16日追加)
- Apache でミラー proxy (2002-04-17)
- 25:45 Apache Proxy で アンテナの ?%MM%%DD%%... (2001-10-02)
- Debian に RSS リーダ「フレッシュリーダー」をインストール (2006-03-06)
- Web広告に興味を持つ (2000-10-01)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
■よく検索されるキーワード
うなぎ(432) スーパー(266) 温め方(192) 温め(74) 書き方(47) 調理(46) perl(44) 提案書(37) windows(36) linux(35) cvs(32) アジェンダ(29) ウナギ(28) debian(25) ドラマ(22) svn(21) 壁紙(21) 動画(20) 鰻(19) java(19) ガッテン(18) 美味しく(18) 冷蔵庫(18) インストール(16) 画像(16) サンプル(16) 使い方(15) rcs(14) 修理(14) テンプレート(13) torrent(12) ためしてガッテン(12) tc-1(12) 温める(12) so905ics(11) web(11) iphone(11) x31(11) 渡辺杏(11) subversion(11) make(11) ganttproject(10) 影舞(10) おいしく(10) ノート(9) ガントチャート(9) パック(9) ヨドバシカメラ(9) gmail(9) apache(9) ツール(9) 映画(9) porter(9) 時計(8) thinkpad(8) emacs(8) wiki(8) usb(8) レンジ(8) google(8) gtd(8) 大井町(8) gnu(8) c#(7) ダイソー(7) 4c(7) 日本語(7) twitter(7) 提案書の書き方(7) 生年月日(7) 市原隼人(7) リフィル(7) pc(7) c++(7) 写真(7) djunit(6) scons(6) ボールペン(6) 故障(6) 方眼(6)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 方法 設定 サンプル ダウンロード セール 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 最新 MP3 動画 解説 意味 用語集 参考文献 お薦め お勧め おすすめ Blog ブログ mixi 待受画面 相場 海外旅行 旅行Process Time: 5.171693s / load averages: 1.89, 1.56, 1.42
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク