Я пытаюсь переписать URL только в том случае, если часть queryString также присутствует в пути. Например:
Этот URL: http://www.mywebsite.com/func/api.ashx?method=func&p1=v1
действителен
, но этот URL http://www.mywebsite.com/path/api.ashx?method=func&p1=v1
не будет переписан.
Пока это то, что у меня есть:
<rewrite>
<rules>
<rule name="Name1" enabled="true">
<match url="^(.+)" />
<conditions trackAllCaptures="true">
<add input="{QUERY_STRING}" pattern="method=([^&]*)" ignoreCase="false" />
<add input="{PATH_INFO}" pattern="\/(.*)\/" />
<add input="{{C:1}}" pattern="{{C:2}}" /> <!-- this is not working -->
</conditions>
<action type="Rewrite" url="/api.ashx" appendQueryString="true" />
</rule>
</rules>
</rewrite>
Можно ли это сделать? Какой лучший способ проверить, является ли метод частью пути, предполагая, что значение равно Dynami c.
Кстати - я пытался использовать группы в своих шаблонах method=(?<methodName>[^&]*)
IIS не нравится.
Спасибо