Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IIS7因休息而重写不起作用_Iis_Url_Rest_Rewrite - Fatal编程技术网

IIS7因休息而重写不起作用

IIS7因休息而重写不起作用,iis,url,rest,rewrite,Iis,Url,Rest,Rewrite,我有一个REST服务,正在尝试删除.svc-一个常见的任务/问题 服务器上的应用程序位于默认网站下的虚拟目录中,不确定这是否重要 我已安装IIS重写模块,并尝试为此创建重写规则 http://blah.me.com/here/thingys/get?id=1111 要改写为: http://blah.me.com/service.svc/thingys/get?id=1111 在my web.conf中创建了以下内容: <rewrite> <rules>

我有一个REST服务,正在尝试删除.svc-一个常见的任务/问题

服务器上的应用程序位于默认网站下的虚拟目录中,不确定这是否重要

我已安装IIS重写模块,并尝试为此创建重写规则

http://blah.me.com/here/thingys/get?id=1111
要改写为:

http://blah.me.com/service.svc/thingys/get?id=1111
在my 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 物理路径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只会提供URI中在

之后的部分,也许可以尝试一下-我认为他们在那里有论坛,更关注IIS和重写模块。