io comunque avevo già provato una soluzione simile ma senza risultati:
<rule name="Prodotti 1">
<match url="Prodotti.asp" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{QUERY_STRING}" pattern="^(.*)IDM=([0-9]+)&item=(.*)" ignoreCase="true" />
</conditions>
<action type="Redirect" url="{C:3}-{C:2}" appendQueryString="false" />
</rule>
<rule name="Prodotti 2" stopProcessing="true">
<match url="(.*)-([0-9]+)" ignoreCase="true" />
<action type="Rewrite" url="Prodotti.asp?IDM={R:2}&item={R:1}" appendQueryString="false" />
</rule>
<rule name="Elenco 1">
<match url="Elenco.asp(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{QUERY_STRING}" pattern="^(.*)IDC=([0-9]+)&item=(.*)" ignoreCase="true" />
</conditions>
<action type="Redirect" url="{C:3}-{C:2}" appendQueryString="false" />
</rule>
<rule name="Elenco 2" stopProcessing="true">
<match url="^(.*)-([0-9]+)" ignoreCase="true" />
<action type="Rewrite" url="Elenco.asp?IDC={R:2}&item={R:1}" appendQueryString="false" />
</rule>