トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

apache:mod_ext_filterでコンテンツ書き換え の変更点

Top / apache:mod_ext_filterでコンテンツ書き換え

*apache:mod_ext_filterでコンテンツ書き換え [#id731230]

画面に表示されるURLのリンクを試験用に書き換えたいけど、アプリを直したりデータを書き換えたりはしたくない。

そんな時はmod_ext_filterでコンテンツを書き換えることで対応できるかもしれません。

***apacheの設定内容 [#o6a332d6]

httpd.conf若しくはhttpd.confでロードされる設定ファイルに以下の内容を記述します。

まず、モジュールのロード
 LoadModule ext_filter_module modules/mod_ext_filter.so


次に、書き換えfilterを定義します。
 ExtFilterDefine fixtext mode=output intype=text/html cmd="/bin/sed -e s/www\.example\.com/www\.test1\.example\.com/g"

この場合、apacheが返却するコンテンツの内容の中が

-コンテンツタイプが「text/html」の場合
-sedに食わせて、「www.example.com」という文字列を「www.test1.example.com」に置換

するfilterを定義してます。
&br;&br;

次に、実際に適用する場所を定義します。
 <Location />
 # core directive to cause the fixtext filter to
 # be run on output
 SetOutputFilter fixtext
 </Location>
この場合、/配下のロケーションに適用されます。


まあ、mod_ext_filterで置換するわけじゃなくて、sedで置換しているだけなんですけどね。

ちなみに、cmdには標準入力にデータが流し込まれて、cmdの標準出力がクライアントへのレスポンスとなります。


***参考サイト [#bd911aa1]
-http://httpd.apache.org/docs/2.2/ja/mod/mod_ext_filter.html