Apache でプロキシを構成する際に問題が発生しました。したい:
- Web サイトからコンテンツを取得する (空気を抜くかどうかに関係なく) ;
- それにフィルターを適用して、ページの本文の一部のテキストを置き換えます。
- 変更されたページに Deflate フィルターを適用した後、ページをクライアントに再送信します。
私の構成は次のようなものです:
ExtFilterDefine FAnalyse mode=output intype=text/html cmd="path_to_my_script"
<VirtualHost *:80>
ServerName site1.com
<Location />
SetOutputFilter INFLATE;FAnalyse;DEFLATE
ProxyPass http://site2.com/
Header append Vary User-Agent env=!dont-vary
</Location>
</VirtualHost>
DEFLATE フィルターがなくても問題なく動作しますが、コンテンツは圧縮されません。
DEFLATE フィルターを使用すると、クライアントは圧縮されたコンテンツを取得するように見えますが、ヘッダーが正しくないため、次のようなページが表示されます。
‹í39 Èæ*ô2ÃA(„ºÒªíïÄÃ5¹Q°sç¿^Þ^N.ç7Æðj#?
æÈ>ñ<ÙæýåÕßÑÍù{°D?]ßÎ~ ty&,锓qÏ:<¬Ð™àYR
lŒŒÓ@À˾íQÿqâõ¬ |ë6%^ç($aÅ ‚˜¸¬„ŠGàûqEyð
私のスクリプトは問題ではありません。Apache の Substitute Filter で置き換えても問題は同じだからです。
私はこのディレクティブを試しました:
Header append Vary User-Agent env=!dont-vary
成功せずに。