【问题标题】:URL rewrite on IIS 8.0IIS 8.0 上的 URL 重写
【发布时间】:2015-04-30 13:22:24
【问题描述】:

我已经在 IIS 8.0 上安装了 URL 重写模块并配置了规则

  1. 如果用户没有 www 并且它将前缀 www
  2. 如果用户来自http,那么它将重定向到https
  3. 如果用户来自移动浏览器而不是发送到移动网站

以下是规则

<appcmd>
    <CONFIG CONFIG.SECTION="system.webServer/rewrite/globalRules" path="MACHINE/WEBROOT/APPHOST" overrideMode="Inherit" locked="false">
        <system.webServer-rewrite-globalRules>
            <rule name="Mobile Redirect" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
                <match url="^$" ignoreCase="true" />
                <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                    <add input="{HTTP_USER_AGENT}" pattern="android|blackberry|googlebot-mobile|iemobile|iphone|ipod|opera mobile|palmos|webos" />
                    <add input="{HTTP_X-Device-User-Agent}" pattern="midp|mobile|phone" />
                    <add input="{HTTP_X-OperaMini-Phone-UA}" pattern="midp|mobile|phone" />
                </conditions>
                <serverVariables>
                </serverVariables>
                <action type="Redirect" url="/en-mobile" appendQueryString="false" />
            </rule>
            <rule name="Add HTTPS and WWW prefix to website.COM" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{HTTPS}" pattern="^OFF$" />
                    <add input="{HTTP_HOST}" pattern="^website\.com" />
                </conditions>
                <serverVariables>
                </serverVariables>
                <action type="Redirect" url="https://www.website.com/{R:1}" appendQueryString="false" />
            </rule>
            <rule name="Add HTTPS to WWW.website.COM" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{HTTPS}" pattern="^OFF$" />
                    <add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
                </conditions>
                <serverVariables>
                </serverVariables>
                <action type="Redirect" url="https://www.website.com/{R:1}" />
            </rule>
        </system.webServer-rewrite-globalRules>
    </CONFIG>
</appcmd>

在上面的第一条规则中,当用户来自移动浏览器时,会完成移动重定向。我重定向到https://www.website.com/en-mobile 但是当我喜欢这个https://m.website.com/en-mobile 时它会给出错误但是当我手动浏览它时效果很好。那么当人们从https://www.website.comhttps://m.website.com/en-mobile 时,我如何重定向到该网址

【问题讨论】:

  • 任何回复将不胜感激

标签: iis url-rewriting iis-8 url-rewrite-module


【解决方案1】:

我可以解决这个问题可能会对某人有所帮助,所以我在这里添加我的解决方案。我将移动重定向规则操作更改为

<action type="Redirect" url="https://m.website.com/en-mobile" appendQueryString="true" redirectType="Found" />

将 redirectType 设置为 found 解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 2016-06-27
    • 2013-06-16
    相关资源
    最近更新 更多