2014-01-10 64 views
0

我想改寫這個網址: 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> 

任何想法爲什麼我的瀏覽器打到https://localhost/My/Test.dll時出現404錯誤? 我安裝了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 - 未找到。您正在查找的資源沒有與其關聯的處理程序。」我有第二條規則,但我懷疑它影響第一。 – user2173353

+0

將其部分更改爲:''我得到一個:「HTTP錯誤404.0 - 未找到您正在查找的資源已被刪除,名稱已更改,或者暫時不可用。「 ('https:// localhost:444/Api/Test'在我的瀏覽器上運行) – user2173353

+0

不要引入'* /'前綴。傳遞正則表達式檢查器的字符串不包含最初的'/'。 – Douglas