代码之家  ›  专栏  ›  技术社区  ›  Netanel Stern

IIS在重写规则上得到ERR\u TOO\u MANY\u重定向

  •  1
  • Netanel Stern  · 技术社区  · 7 年前

    主站点(桌面版本)位于根路由(“/”)中,移动站点位于路由“/mobile”中

    我创建了这个IIS规则,但当我在桌面上尝试时,它工作得很好,但在移动设备上,我得到了一个错误ERR\u TOO\u MANY\u重定向

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="Rewrite Mobile" enabled="true" stopProcessing="true">
                <match url="(.*)" ignoreCase="true"/>
                <conditions logicalGrouping="MatchAny">
                    <add input="{HTTP_USER_AGENT}" pattern="midp|mobile|phone" />
                    <add input="{HTTP_X-Device-User-Agent}" pattern="midp|mobile|phone" />
                    <add input="{HTTP_X-OperaMini-Phone-UA}" pattern="midp|mobile|phone" />
                </conditions>
                <action type="Redirect" url="mysiteurl/mobile" appendQueryString="false" />
            </rule>
        </rewrite>
      </system.webServer>
    </configuration>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Victor Leontyev    7 年前

    这是因为您的规则也匹配所有移动URL。您需要从规则中排除移动URL。此规则适用于您:

    <rule name="Rewrite Mobile" enabled="true" stopProcessing="true">
        <match url="mobile(.*)" negate="true"/>
        <conditions logicalGrouping="MatchAny">
            <add input="{HTTP_USER_AGENT}" pattern="midp|mobile|phone" />
            <add input="{HTTP_X-Device-User-Agent}" pattern="midp|mobile|phone" />
            <add input="{HTTP_X-OperaMini-Phone-UA}" pattern="midp|mobile|phone" />
        </conditions>
        <action type="Redirect" url="/mobile" appendQueryString="false" />
    </rule>
    
    推荐文章