urlrewritING.net查询虚拟URL中的字符导致重定向循环

Mys*_*ter 3 umbraco url-rewriting urlrewriting.net redirect-loop query-string

我有一个项目,我们正在为客户重建一个站点,新站点在.net平台上使用umbraco.旧址冷融合.

Umbraco使用urlrewriting.net库,所以我为旧的冷融合网址创建了所有301重定向规则,但是这个规则导致无限循环.

    <add name="r66" virtualUrl="^~/thing_info/index.cfm.D413249D-BCD8-304B-02CD-561DAC70641E$"
                destinationUrl="~/about-us/award-winning-product" redirect="Application" redirectMode="Permanent" ignoreCase="true" />
Run Code Online (Sandbox Code Playgroud)

我知道 "." 有一个特殊的意义,但它运作良好,我也用过"." 匹配包括"?"在内的任何角色 开始查询字符串的字符.如果我访问尝试没有像这样的查询字符串的网址

http://staging.site/thing_info/index.cfm-D413249D-BCD8-304B-02CD-561DAC70641E
Run Code Online (Sandbox Code Playgroud)

然后我被正确地重定向到

http://staging.site/about-us/award-winning-product
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试网址(问号是唯一的区别)

http://staging.site/thing_info/index.cfm?D413249D-BCD8-304B-02CD-561DAC70641E
Run Code Online (Sandbox Code Playgroud)

然后我最终进入了一个重定向循环.(我检查了响应头)

有没有人知道我做错了什么或者urlrewriting.net库中是否有错误?或者如何纠正问题?

Jon*_*ton 5

默认情况下,UrlRewritingNet不会在模式匹配中包含查询字符串.要启用此功能,您需要添加以下属性rewriteUrlParameter ="IncludeQueryStringForRewrite"

<add name="r66" virtualUrl="^~/thing_info/index.cfm.D413249D-BCD8-304B-02CD-561DAC70641E$"
     destinationUrl="~/about-us/award-winning-product" redirect="Application" redirectMode="Permanent" 
     ignoreCase="true" rewriteUrlParameter="IncludeQueryStringForRewrite" />
Run Code Online (Sandbox Code Playgroud)

尝试一下,让我知道它是否有效.

乔纳森