首页 文章

IIS7 Url重写 - 我可以将stopProcessing =“false”与重定向规则一起使用吗?

提问于
浏览
5

我希望规范化域名,从bar.example.com到www.example.com(以及任何不是www.example.com的域名) . 站点运行IIS7 .

问题是某些URL的格式为http://bar.example.com/asp/oldpage.asp?query=awesome,并且已经具有特定的URL重写规则,可以重定向到http://www.example.com/newpage/awesome

我想写一个捕捉其他规则的规则 .

在这里:我有很多规则,并希望将此规则放在网站的根目录中,但在子文件夹中有其他重写/重定向规则,所以我想推迟301发生,直到所有规则都有已经运行了 .

这可能吗?重写有一个延迟选项(stopProcessing =“false”),但这似乎不是Redirects的选项 .

我在这里SOL吗?

1 回答

  • 6

    不幸的是,我可以确认延迟处理( stopProcessing="false" )仅适用于重写操作,并且被重定向操作忽略 .

    如果匹配的数量很小 - 但根据你的问题,它不是 - 我会建议你使用正则表达式替换来组合它们 . 例如:

    First match: ^first/a$
    Second match: ^second/b$
    
    Combined match: ^(first/a|second/b)$
    

    导致类似于:

    <rule name="MyCombinedRule">
        <match url="^(first/a|second/b)$" />
        <action type="Redirect" url="http://www.example.com/third/c" />
    </rule>
    

相关问题