これに対する最も簡単な解決策は、「IE 7 はサポートされていないページ」にブラウザー チェックを配置することです。Office プログラムは、(送信した間違ったユーザー エージェント文字列に基づいて) リダイレクトをたどり、エラー ページを読み込み、HTTP 200 応答を受け取り、リンクを既定のブラウザーにスローします。ブラウザは、適切なユーザー エージェント文字列を使用して、ページ自体を要求します。
- Office プロセスは、ユーザー エージェント「互換性あり; MSIE 7.0」を使用して「example.com/example.html」を要求します。
- サーバーは http 302 リダイレクトを example.com/notsupported.html に返します
- Office プロセスは、「example.com/notsupported.html」を要求し、ユーザー エージェントは「互換性があります。MSIE 7.0」です。
- サーバーは http 200 Found + example.com/notsupported.html を返します
- Office プロセスがリンクを既定のブラウザーに渡す
- デフォルトのブラウザは、「ブラウザ エージェントが何であれ」ユーザー エージェントを使用して「example.com/notsupported.html」を要求します。
- サーバーは http 200 Found + example.com/notsupported.html を返します
そのため、ブラウザーがページを要求したら、ユーザー エージェント文字列を使用して、「サポートされていない」ページを本当に送り返すか、要求を実際のコンテンツにリダイレクトするかを確認できます。
ただし、これにより、リダイレクトされた元の URL を見つけるという問題が発生します。最初にページを要求する Office プロセスと、最終的にエンド ポイント URL が渡されるブラウザーとの間でセッションを共有すると、問題が発生します。ここでの回避策は、「サポートされていません」ページへのリダイレクト応答にクエリ文字列パラメーターとして元の要求 URL を含めることです。