2017-07-27 68 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」您將在輸入中添加額外的?在數據=值的末尾標記。他們被轉換爲&&。我希望這有幫助。 –