当我尝试实现我创建的移动重定向时,我得到了一个重定向循环:
<rewrite>
<rules>
<rule name="Mobile Rewrite" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" ignoreCase="true" negate="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="website.com.au" />
<add input="{HTTP_USER_AGENT}" pattern="midp|mobile|phone" />
</conditions>
<action type="Redirect" url="http://mwebsite.com.au" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
这是一个问题,mwebsite.com.au被分配到与website.com.au相同的web.config,因此它们由同一个web.config处理。这就是我正在处理的.net应用程序处理请求的方式(我不能拆分它们,它们必须通过这个1 web.config)
我已经通过将google.com.au替换为mwebsite.com.au进行了测试,但它运行良好但由于某种原因,URLREWRITE无法在必须通过相同规则注入mwebsite.com.au时处理该请求。 / p>
任何帮助都会令人惊叹。
答案 0 :(得分:1)
您的规则基本上是说:如果{HTTP_HOST}
包含website.com.au
且{HTTP_USER_AGENT}
包含midp
,mobile
或phone
中的任何一个,则重定向到http://mwebsite.com.au
。
您可以猜到,http://mwebsite.com.au
包含website.com.au
。
要解决此问题,只需告诉您的情况,它应该使用website.com.au
模式^website.com.au
开始。
所以你的规则将成为:
<rewrite>
<rules>
<rule name="Mobile Rewrite" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" ignoreCase="true" negate="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^website.com.au" />
<add input="{HTTP_USER_AGENT}" pattern="midp|mobile|phone" />
</conditions>
<action type="Redirect" url="http://mwebsite.com.au" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
</rewrite>