query-string no-gzip == 1 またはその他の member_file_download... 基準が指定されている場合、上記のルールは GZIP 圧縮を無効にしようとしているようです。
IIS で URL Rewrite を使用してそれを実現するには、web.config で同じロジックを使用しますが、それを使用して Accept-Encoding ヘッダーをオーバーライド/削除し、サーバーが "accept encoding gzip/deflate" を認識しないようにします。圧縮するように指示します。
そのため、次の 2 つの手順を実行します。
まず、\windows\system32\inetsrv\config\ApplicationHost.config にサーバー変数設定を追加して、サーバーがサーバー設定をオーバーライドできるようにします (UI を使用してオーバーライドすることもできます)。サーバー変数リンク)。
<system.webServer>
<rewrite>
<allowedServerVariables>
<add name="HTTP_ACCEPT_ENCODING" />
</allowedServerVariables>
</rewrite>
</system.webServer>
次に、実際の書き換えルールを web.config に追加します。次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="DisableGZIP">
<match url=".*" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{QUERY_STRING}" pattern="(^|\?|&)s2member_file_download\=.+" ignoreCase="false" />
<add input="{QUERY_STRING}" pattern="(^|\?|&)no-gzip\=1" ignoreCase="false" />
</conditions>
<action type="None" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
これは機能するはずです。テストするには、クエリ文字列 ?no-gzip=1 を任意の URL に渡すことができ、それらを圧縮しないでください。