Minha solução seria condições de uso para isso. Ao combinar as condições com o {QUERY_STRING}
, você pode usar referências posteriores para usá-las no URL de redirecionamento.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="true">
<add input="{QUERY_STRING}" pattern="&?(beta=[^&]+)&?" />
<add input="{QUERY_STRING}" pattern="&?(gamma=[^&]+)&?" />
<add input="{REQUEST_URI}" pattern="^/redirect" negate="true" />
</conditions>
<action type="Redirect" url="/redirect?{C:1}&{C:2}" appendQueryString="false" redirectType="Found" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
O único problema possível com essa solução pode ser (dependendo do que você deseja) é que o redirecionamento só acontecerá se as variáveis de cadeia de consulta beta
e gamma
estiverem presentes na cadeia de consulta. Se não estiverem, o redirecionamento não acontecerá.
A regra de redirecionamento corresponde a qualquer URL ( (.*)
). Se necessário, você pode mudar isso. Eu também adicionei uma condição extra para não ter a correspondência de regra contra a própria URL de redirecionamento, que faria com que a URL de redirecionamento fosse redirecionada.