2014-01-10 2 views
0

Я хочу, чтобы переписать этот URL: https://localhost/My/Test.dll в этом: https://localhost:444/Api/Test (Это GET MVC действие)переписывают IIS не удается

Я использую это правило:

<rule name="Rewrite rule1 for Thing 2" patternSyntax="Wildcard" stopProcessing="true"> 
    <match url="*" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
     <add input="{QUERY_STRING}" pattern="*/My/Test.dll" /> 
    </conditions> 
    <action type="Rewrite" url="https://localhost:444/Api/Test" appendQueryString="false" /> 
</rule> 

Любая идея почему я получаю ошибку 404 при ударе https://localhost/My/Test.dll с моим браузером? У меня есть URL Rewrite. Нужно ли также устанавливать маршрутизацию запросов приложений?

ответ

1

Строка, которую вы пытаетесь выполнить, не является строкой запроса, а адресом в URL-адресе. Вместо этого попробуйте следующее:

<rule name="Rewrite rule1 for Thing 2" patternSyntax="Wildcard" stopProcessing="true"> 
    <match url="My/Test\.dll" /> 
    <action type="Rewrite" url="Api/Test" appendQueryString="false" /> 
</rule> 
+0

Это дает мне: «Ошибка HTTP 404.4 - не найдена. Ресурс, который вы ищете, не имеет связанного с ним обработчика». После этого у меня второе правило, но я сомневаюсь, что это все равно повлияет на 1-й. – user2173353

+0

Измените его частично на это: '' Я получаю: "Ошибка HTTP 404.0 - не найден. Ресурс, который вы ищете, удален, изменил его имя , или временно недоступен ». ('https: // localhost: 444/Api/Test' работает в моем браузере) – user2173353

+0

Не вводите префикс' */'. Строка, которая передается средством проверки регулярных выражений, не включает начальную '/'. – Douglas

Смежные вопросы