2017-07-27 111 views
0

我有以下URLURL重定向的web.config

https://www.abcsite.com/?data=w35VTqIaVXWfi4GmESj8EGCG1cdF2aT%2BUF3D?utm_source=external%20system&utm_campaign=external%20system&utm_medium=EX.com&utm_content=MMB

其中有额外的?最后。我想删除并替换为“&”

我正在使用以下规则,但它不工作。你能回顾一下并告诉我我做错了什么吗?

<rewrite> 
    <rules> 
    <rule name="fixdata" stopProcessing="true"> 
     <match url="\?(.*)\?(.*)$" ignoreCase="false" /> 
     <action type="Redirect" redirectType="Permanent" url="http://www.example.com/{R:1}&{R:2}" /> 
    </rule> 
    </rules> 
</rewrite> 

谢谢。

回答

1

您的规则应该是这样的:

<rule name="fixdata" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions> 
     <add input="{QUERY_STRING}" pattern="(.*)\?utm_source(.*)$" /> 
    </conditions> 
    <action type="Redirect" url="{R:0}?{C:1}&amp;utm_source{C:2}" appendQueryString="False" /> 
</rule> 

你的规则没有工作,因为<match url=包含路径,而不查询字符串。你需要创建附加条件来匹配查询字符串与您的正则表达式模式

+0

感谢您的。这是工作。我面临的唯一问题是它也取代?在数据变量值中。我只是想要它取代?在utm_source之前。我希望这是有道理的。如果你需要更多的澄清,请让我知道,我会写得更好。 –

+0

您能否提供结果URL示例 –

+0

这里是输入URL“http:// example /?data = a6fhD87ktNK7PxlGtDW1ge5BgE%0AK8hXp ?? ge%?utm_source = XX%20AXX&utm_campaign = XX%20XX&utm_medium = XX.com&utm_content = MMB”,这里是输出“http:// example /?data = a6fhD87ktNK7PxlGtDW1ge5BgE%0AK8hXp && ge%&utm_source = XX%20AXX&utm_campaign = XX%20XX&utm_medium = XX.com&utm_content = MMB”您将在输入中添加额外的?在数据=值的末尾标记。他们被转换为&&。我希望这有帮助。 –