簡體   English   中英

REST的IIS7重寫不起作用

[英]IIS7 rewrite for REST not working

我有一個REST服務,正在嘗試刪除.svc-一個常見的任務/問題。

服務器上的應用程序位於默認網站下的虛擬目錄中(不確定這是否重要)

我已經安裝了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
要求的網址http://blah.me.com:80/here/thingys/get?id=1111
物理路徑C:\\ MyApp \\ here \\ thingys \\ get

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

我在這里缺少什么嗎? 我曾嘗試在默認網站和應用程序下分別或一起創建此規則。

太謝謝了

P

您可以使用此:

<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只給您http://blah.me.com/之后的URI部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM