Atualmente estou preso com minhas regras de reescrita, e eu precisaria de algumas dicas sobre isso.
Aqui está a situação: temos dois sites, um é website.com, o outro é website-staging.com (apenas exemplos aqui dec)
Em website.com, para alguns URLs, gostaria de usar uma regra de reescrita para acessar o site de teste e exibir os resultados.
Aqui está a regra no arquivo web.config:
<rule name="RewriteSearchQueries" patternSyntax="Wildcard" stopProcessing="true">
<match url="search?*" />
<action type="Rewrite" url="https://website-staging.com/{R:0}" logRewrittenUrl="true" />
Fiz o teste padrão, está tudo ok. O URL usado para a reescrita está funcionando corretamente, no entanto, quando clico em website-staging.com/search?arg=1&blabla=2, recebo uma mensagem de erro 404 :
404 - Arquivo ou diretório não encontrado. O recurso que você está procurando pode ter sido removido, seu nome alterado ou está temporariamente indisponível.
Eu tentei colocar a seguinte ação também:
<action type="Rewrite" url="https://website-staging.com/search?{R:1}" logRewrittenUrl="true" />
E também não funcionou. Qualquer pista ?
EDIT: O Application Request Routing está instalado, o proxy está habilitado.
Então.. Depois de instalar o FRT conforme recomendado por Lex Li, vi que não havia correspondência, portanto, nenhuma reescrita de URL foi feita.
Eu testei de novo e de novo o padrão, estava tudo bem.
Finalmente, decidi substituir o curinga por regex, e... Tadam ! Funcionou. Por uma razão que não posso explicar, o padrão curinga não foi detectado corretamente, apesar de estar bem com o testador de padrões, enquanto o uso de regex funcionou perfeitamente.
Portanto, se você estiver enfrentando um problema semelhante, regex até o fim!