从移动浏览器打开时,URL重定向/重写

时间:2013-03-20 13:08:46

标签: iis-7 url-rewriting rewrite url-redirection

我们正在开发两个网站,其中一个是webapplication,另一个是移动应用程序。

所以我的要求是为移动用户创建一个重定向网址,从webapplication重定向到移动应用程序,但文件夹或结构不同。

对于Web应用程序而言 http://testrequest.com/home/Account/ 对于移动设备,它应该是http://m.testresponce.com/mforyourhome/Account.aspx

请有人帮我使用网址重写。

已编辑: - 在IIS7上工作

2 个答案:

答案 0 :(得分:4)

您可以使用{HTTP_USER_AGENT}条件执行此操作 适用于您的案例,如下:

<rule name="Mobile Redirect" stopProcessing="true">
    <match url="^home/Account/$" ignoreCase="true" />
    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <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="http://m.testresponce.com/mforyourhome/Account.aspx" appendQueryString="false" />
</rule>

它将与exactely home/Account/匹配,如果用户正在从移动设备浏览,则他/她将被重定向到http://m.testresponce.com/mforyourhome/Account.aspx

重要

仅在http://testrequest.com/上应用此规则(或者至少避免陷入无限重定向) User agent永远不会100%可靠(因为它们可以更改)

来源:http://forums.iis.net/t/1169853.aspx

答案 1 :(得分:0)

要从移动网站返回时阻止重定向:

<rule name="Mobile Redirect" stopProcessing="true">
  <match url="^home/Account/$" ignoreCase="true" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{HTTP_REFERER}" pattern="http://m.testresponce.com(.*)" negate="true" />
    <add input="{HTTP_USER_AGENT} {HTTP_X-Device-User-Agent} {HTTP_X-OperaMini-Phone-UA}" pattern="midp|mobile|phone" />
  </conditions>
  <action type="Redirect" url="http://m.testresponce.com/mforyourhome/Account.aspx" appendQueryString="false" />
</rule>