2009-11-18 59 views
0

我有一個REST服務,並試圖刪除.svc - 一個常見的任務/問題。IIS7重寫REST不工作

在服務器上的應用是在

我已經安裝了IIS重寫模塊,並試圖爲此創建重寫規則的默認網站的虛擬目錄下(不知道這是很重要的)。

http://blah.me.com/here/thingys/get?id=1111 

改寫這樣的:

http://blah.me.com/service.svc/thingys/get?id=1111 

在我web.conf創建如下:

<rewrite> 
     <rules> 
      <rule name="GEAPI /here/ to /service.svc/"> 
       <match url="^(.*?)/here/(.*)$" /> 
       <action type="Rewrite" url="{R:1}/service.svc/{R:2}" /> 
      </rule> 
     </rules> 
    </rewrite> 

在正則表達式做測試正確GUI。

但是 - 當我在服務器上的瀏覽器中運行它,它提供了以下404錯誤:

錯誤代碼0x80070002
請求的URL http://blah.me.com:80/here/thingys/get?id=1111
物理路徑C:\ MyApp的\此處\ thingys \獲取


C:\ Myapp是IIS中虛擬目錄指向的正確物理目錄。

有什麼我在這裏失蹤?我曾嘗試在默認網站和應用程序下分別和共同創建此規則。

非常感謝

P

+0

也許嘗試HTTP的一部分:// WWW .iis.net - 我認爲他們有論壇,更側重於IIS和重寫模塊。 – Cheeso 2009-11-25 20:50:12

回答

0

您可以使用此:

<rewrite> 
    <rules> 
     <rule name="GEAPI /here/ to /service.svc/"> 
      <match url="^(.*)here(/.+)" /> 
      <action type="Rewrite" url="{R:1}service.svc{R:2}" /> 
     </rule> 
    </rules> 
</rewrite> 

IIS只會給你的URI那之後http://blah.me.com/