[メモ] Unity WebGLビルドをIISでCompressedからロードさせる方法

UnityをWebGLでビルドしたときにテスト実行して動作確認するのですが、私はWindowsを主に使っているため、IISで動作確認を行います。FastestビルドするとCompressedフォルダも出力されgzip圧縮されたリソースも出力されます。
そこで、圧縮されていないReleaseの.dataや.memファイルではなく圧縮されたCompressed内にある.datagzや.memgzをロードさせたいのですが、.htaccessはビルド先フォルダーに出力されますが、web.configは出力されません。
その前に、.htaccessで設定されているようにアクセスされたURLをもとにアクセス先を変更する機能が、IISではURL Rewriteというものに当たるのですが、この機能はデフォルトではインストールされないためインストールしなければなりません。
[URL Rewrite DLページ] (http://www.iis.net/downloads/microsoft/url-rewrite)(Chromeでは「リダイレクト ループが含まれています」となってダウンロードできませんのでIEでDLしてください)

C:\Program Files\Unity\Editor\Data\PlaybackEngines\webglsupport\BuildTools\WebGLTemplates配下の各フォルダーに以下の内容のweb.configを作成します。
これで、ビルドするとweb.configもコピーされ、IISでホストしても圧縮されたものをロードするようになります。

[参考元](http://forum.unity3d.com/threads/solved-iis-configuring-it-to-serve-out-the-new-webgl-stack-files-how.284080/)

```xml:web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Imported Rule 1" enabled="true" stopProcessing="true">
          <match url="(.*)Data(.*)\.js" ignoreCase="true" />
          <conditions logicalGrouping="MatchAll">
            <add input="{HTTP_ACCEPT_ENCODING}" pattern="gzip" ignoreCase="true" />
          </conditions>
          <action type="Rewrite" url="{R:1}Compressed{R:2}.jsgz" />
        </rule>
        <rule name="Imported Rule 2" enabled="true" stopProcessing="true">
          <match url="(.*)Data(.*)\.data" ignoreCase="true" />
          <action type="Rewrite" url="{R:1}Compressed{R:2}.datagz" />
          <conditions>
          </conditions>
        </rule>
        <rule name="Imported Rule 3" enabled="true" stopProcessing="true">
          <match url="(.*)Data(.*)\.mem" ignoreCase="true" />
          <action type="Rewrite" url="{R:1}Compressed{R:2}.memgz" />
          <conditions>
          </conditions>
        </rule>
        <rule name="Imported Rule 4" enabled="true" stopProcessing="true">
          <match url="(.*)Data(.*)\.unity3d" ignoreCase="true" />
          <action type="Rewrite" url="{R:1}Compressed{R:2}.unity3dgz" />
          <conditions>
          </conditions>
        </rule>
      </rules>
      <outboundRules>
        <!-- FIRST SETUP THE SWITCHES FOR THE RESPONSE ENCODING //-->
        <rule name="Rewrite JSGZ header" preCondition="IsJSGZ" stopProcessing="false">
          <match serverVariable="RESPONSE_Content_Encoding" pattern=".*" />
          <action type="Rewrite" value="gzip" />
        </rule>
        <rule name="Rewrite MemGZ header" preCondition="IsMemGZ" stopProcessing="false">
          <match serverVariable="RESPONSE_Content_Encoding" pattern=".*" />
          <action type="Rewrite" value="gzip" />
        </rule>
        <rule name="Rewrite DataGZ header" preCondition="IsDataGZ" stopProcessing="false">
          <match serverVariable="RESPONSE_Content_Encoding" pattern=".*" />
          <action type="Rewrite" value="gzip" />
        </rule>
        <rule name="Rewrite Unity3DGZ header" preCondition="IsUnity3DGZ" stopProcessing="true">
          <match serverVariable="RESPONSE_Content_Encoding" pattern=".*" />
          <action type="Rewrite" value="gzip" />
        </rule>
        <!-- AND SETUP THE MATCHES FOR THE RESPONSE ENCODING SWITCHES //-->
        <preConditions>
          <preCondition name="IsJSGZ">
            <add input="{PATH_INFO}" pattern="\.jsgz$" />
          </preCondition>
          <preCondition name="IsMemGZ">
            <add input="{PATH_INFO}" pattern="\.memgz$" />
          </preCondition>
          <preCondition name="IsDataGZ">
            <add input="{PATH_INFO}" pattern="\.datagz$" />
          </preCondition>
          <preCondition name="IsUnity3DGZ">
            <add input="{PATH_INFO}" pattern="\.unity3dgz$" />
          </preCondition>
        </preConditions>
      </outboundRules>
    </rewrite>
    <staticContent>
      <mimeMap fileExtension=".memgz" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".datagz" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".unity3dgz" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".jsgz" mimeType="application/x-javascript; charset=UTF-8" />
    </staticContent>
    <urlCompression doStaticCompression="true" doDynamicCompression="false" />
  </system.webServer>
</configuration>
```