我有一个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
答案 0 :(得分: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只会为您提供http://blah.me.com/
之后的URI部分