Apache の mod_filter で正規表現のデリミタのエスケープが効かない問題

Apache 2.1 以降では AddOutputFilterByType による設定は非推奨 になっている為、同等の事をやるには mod_filter を利用することになるが、

FilterDeclare gzip CONTENT_SET
FilterProvider gzip DEFLATE Content-Type /^text\/.+/
FilterChain gzip

の様に / を含む正規表現を設定すると Bad regexp エラーが出る。

打開策は / を \x2F に置き換える。

FilterProvider gzip DEFLATE Content-Type /^text\x2F.+/

なお、本問題は 2.2.21 で直った模様。

ちなみに書式が大幅に変わってる 2.4 からは代替デリミタの書式が使える。

FilterProvider gzip DEFLATE "%{CONTENT_TYPE} =~ m|^text/.+|i"