通过搜索引擎无法进行IIS URL重写

时间:2019-07-11 14:36:09

标签: iis url-rewriting search-engine

我已经为IIS 10中托管的网站编写了一个简单的url重写规则。它可以完美运行而没有任何问题。

但是,有一种奇怪的行为。当我在浏览器中直接写url时,规则工作正常,但是如果我在Google / Bing中搜索url,然后单击搜索页面上的url,则规则不会触发。

我调查了Insights找不到任何相关信息。

这是规则-

<rule name="PROD Rule" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^myweb\.com$" />
      </conditions>
      <action type="Redirect" url="https://www.mywebsite.com/{R:0}" redirectType="Permanent" />
</rule>

直接在浏览器中写网址-

myweb.com 重定向到https://www.mywebsite.com/

在搜索引擎Google / Bing中搜索URL,然后在搜索结果页面上单击URL-

myweb.com 停留在 myweb.com

我希望无论来源如何,只要请求到达IIS,规则都会触发。

2 个答案:

答案 0 :(得分:0)

您可以使用以下url重写规则:

<rule name="Force SSL" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{HTTPS}" pattern="off" />
                </conditions>
                <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="true" redirectType="Permanent" />
            </rule>

enter image description here

答案 1 :(得分:0)

因此,事实证明这并不是与搜索引擎相关的问题。相反,这只是我编写的重写规则所遗漏的情况。

现有规则期望以 myweb.com 作为输入,并将其正确重定向到https://www.mywebsite.com/

但是,当我在搜索引擎上搜索相同的网址并单击它们时。发送到服务器的网址不是 myweb.com 而是 www.myweb.com

这是有效的更新规则-

<rule name="PROD Rule" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}" pattern="^myweb\.com$" />
        <add input="{HTTP_HOST}" pattern="^threeinsure\.com$" />
    </conditions>
    <action type="Redirect" url="https://www.mywebsite.com/{R:0}" redirectType="Permanent" />
</rule>