IIS 8中的URL重写规则未触发

IIS 8中的URL重写规则未触发,iis,web-config,iis-8,Iis,Web Config,Iis 8,我的URL重写有问题,我不知道我做错了什么,所以,也许你可以给我指出正确的方向。我们有一个intranet站点,其模式如下:intranet.old site.com。现在我们有了一个新域名,我想把我过时的链接转发到我们新内联网的首页,它看起来像:intranet.new site.com 我在IIS中安装了URL重写模块,在我看来,设置是正确的: 匹配URL Request URL: matches pattern. Using: Wildcards Pattern: *i

我的URL重写有问题,我不知道我做错了什么,所以,也许你可以给我指出正确的方向。我们有一个intranet站点,其模式如下:
intranet.old site.com
。现在我们有了一个新域名,我想把我过时的链接转发到我们新内联网的首页,它看起来像:
intranet.new site.com

我在IIS中安装了URL重写模块,在我看来,设置是正确的:

匹配URL

Request URL: matches pattern.
Using:       Wildcards
Pattern:     *intranet.old-site*
Ignore case: true
条件

none
none
服务器变量

none
none
行动

Action Type:                         Rewrite
Action Properties:                   Rewrite-URL: http://intranet.new-site.com/
Append query string:                 true
Log rewritten URL:                   false
Stop processing of subsequent rules: false
我也很乐意知道什么是可行的,所以如果有关于
web.config
的规则,我也可以试试

更新1:

web配置现在如下所示:

<rewrite>
    <rules>
        <rule name="RewriteSG2DE" patternSyntax="ECMAScript" stopProcessing="true">
            <match url="(.*).sgbdd.saint-gobain(.*)" />
                <action type="Redirect" url="intranet.stark-deutschland.net" />
                <conditions logicalGrouping="MatchAny">
                    <add input="{HTTP_HOST}" pattern="(.*)sgbdd.saint-gobain(.*)" />
                    <add input="{HTTP_HOST}" pattern="intranet.sgbdd.saint-gobain.com" />
                </conditions>
        </rule>
    </rules>
</rewrite>
我还添加了建议的条件:


感谢您使用两个URL重写规则输入,这样做更容易处理。 如果你想重定向

intranet.sgbdd.saint-gobain.com/start.asp?something_more --> intranet.stark-deutschland.net/start.asp?something_more
somesite.intranet.saint-gobain.com/my/new/site --> somesite.intranet.stark-deutschland.net/my/new/site
那么规则可以是这样的

  <rule name="rule1" stopProcessing="true">
                <match url="(.*)" />
                <conditions trackAllCaptures="true">
                    <add input="{HTTP_HOST}" pattern="^(.*)saint-gobain.com$" />
                    <add input="{HTTP_HOST}" pattern="intranet.sgbdd.saint-gobain.com" negate="true" />
                </conditions>
                <action type="Redirect" url="http://{C:1}stark-deutschland.net/{R:1}" redirectType="Temporary" />
            </rule>
            <rule name="rule2" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^intranet.sgbdd.saint-gobain.com$" />
                </conditions>
                <action type="Redirect" url="http://intranet.stark-deutschland.net/{R:1}" redirectType="Temporary" />
            </rule>
<rule name="RewriteSG2DE" patternSyntax="ECMAScript" stopProcessing="true">
            <match url="(.*)" />
                <action type="Redirect" url="http://{C:1}stark-deutschland.net/{R:1}" redirectType="Temporary" />
                <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_HOST}" pattern="(.*)sgbdd.saint-gobain.com" />
                </conditions>
        </rule>
那么规则可以是这样的

  <rule name="rule1" stopProcessing="true">
                <match url="(.*)" />
                <conditions trackAllCaptures="true">
                    <add input="{HTTP_HOST}" pattern="^(.*)saint-gobain.com$" />
                    <add input="{HTTP_HOST}" pattern="intranet.sgbdd.saint-gobain.com" negate="true" />
                </conditions>
                <action type="Redirect" url="http://{C:1}stark-deutschland.net/{R:1}" redirectType="Temporary" />
            </rule>
            <rule name="rule2" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^intranet.sgbdd.saint-gobain.com$" />
                </conditions>
                <action type="Redirect" url="http://intranet.stark-deutschland.net/{R:1}" redirectType="Temporary" />
            </rule>
<rule name="RewriteSG2DE" patternSyntax="ECMAScript" stopProcessing="true">
            <match url="(.*)" />
                <action type="Redirect" url="http://{C:1}stark-deutschland.net/{R:1}" redirectType="Temporary" />
                <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_HOST}" pattern="(.*)sgbdd.saint-gobain.com" />
                </conditions>
        </rule>


当文件版本为6.2时,您使用的是IIS 8,只需点击错误1@LexLi nice article即可。我看了一遍,但我似乎在这里找不到我的错误。我假设它与模式有关,但即使我将其更改为
intranet.old site.com
(不带通配符/regex),它也不起作用。您没有使用条件检查主机名。这是最典型的错误。因此,我也添加了两个条件,但仍然不走运:第一个条件正在输入:
{HTTP_HOST}
匹配模式
(*)intranet.old site(.*)
,第二个条件完全相同,但具有完整的地址。还将“逻辑分组”更改为
匹配任何
请记住,其他人看不到您的屏幕,因此请编辑您的问题,将新信息全部包括在内,而不是部分。还要学习如何自己排除故障,那么原因应该是清楚的。工作完美!我想我的错误是
匹配url
的事情,我必须指定
(.*)
而不是特定的路径。非常感谢。