web-dev-qa-db-ja.com

すべてのIE8ユーザーを特定のURLにリダイレクトする方法は?

W2008をIISで実行し、約20のWebサイト(すべてPHP、約半分がWP)で実行しています。

現在、いくつかのサイトのヘッダーにこれがあり、機能しています。私が管理者であるにもかかわらず、多くの開発者がいて、ほとんどのサイトで必要に応じてヘッダーを上書きできるため、管理が難しくなっています。

<!--[if IE 8]>
<script type="text/javascript">
        window.location = "http://example.com/wedontsupportIE8.html";
    </script>
<![endif]-->

同じ機能を持つサーバーにルールを設定する方法はありますか?

私が試した現在のルール:

Webサーバーにルールを追加しましたが、基本的に正しく機能しません。過去6か月間、すでに/home/index.phpへのリダイレクトが機能していました。最初に新しいルールを追加すると、次のことが行われます。

  • iE8-サイト上の任意のディレクトリで404エラーが発生し、ルートに戻る
  • iE10、FF、Chrome、Safariでは、必要に応じて/ homeにリダイレクトするだけです。

以下のwebconfig

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
        <rules>
  <rule name="IE8rewriteall" patternSyntax="Wildcard">
                    <match url="*" />
                    <conditions>
                        <add input="{HTTP_USER_AGENT}" pattern="*MSIE*" />
                    </conditions>
                    <action type="Rewrite" url="http://example.com/ie/index.html" />
                </rule>
            <rule name="Root Hit Redirect" stopProcessing="true">
                <match url="^$" />
                <action type="Redirect" url="/home/index.php" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
</configuration>
1
blankip

ここに行く....これは動作するはずです:

<rule name="IE8FacePalm" stopProcessing="true">
    <match url="\" ignoreCase="true" />
    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{HTTP_USER_AGENT}" pattern="MSIE 8.0" />
    </conditions>
    <action type="Redirect" url="http://x.com/a-url" appendQueryString="false" />
</rule>
1
Simon Hayter