doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

Apacheによる本文書き換え mod_substitute + mod_filter

スポンサーリンク

mod_substitute + mod_filter

環境

OS:Windows Server

Apache:2.4

mod_substitute

httpd.apache.org

概要

mod_substituteは、 response bodyに対して正規表現と固定文字列の両方の置換を実行するためのメカニズムを提供します。

用途

例えば、HTMLに記載されている内容を、HTMLの書き換えなしにApache側で書き換え(置換)可能です。

これにより、プロキシされたHTMLも書き換えて利用できます。

mod_filter

httpd.apache.org

概要

このモジュールは、出力コンテンツフィルタのスマートで状況依存の設定を可能にします。たとえば、コンテンツタイプが事前にわかっていない場合でも(たとえばプロキシで)、Apacheは異なるフィルタを介して異なるコンテンツタイプを処理するように設定できます。

用途

AddOutputFilterByTypeが非推奨となっているらしく、こちらに切替えて実装する必要がある。

実際の記述

<Location "/hoge/"> 
    FilterDeclare MYFILTER
    FilterProvider MYFILTER SUBSTITUTE "%{Content_Type} = 'text/html'"
    FilterChain MYFILTER
    Substitute "s/text.html/test.html/n" 
</Location>