Url rewriting IIS URL将Service1.svc重写为api

Url rewriting IIS URL将Service1.svc重写为api,url-rewriting,biztalk,iis-10,Url Rewriting,Biztalk,Iis 10,我正在尝试使用IIS URL重写来重写: http://localhost/RESTDemo/Service1.svc/Persons至http://localhost/RESTDemo/api/Persons 我的Web.config中有以下配置: <system.webServer> <rewrite> <rules> <rule name="Change 'Service1.svc' to

我正在尝试使用IIS URL重写来重写:

http://localhost/RESTDemo/Service1.svc/Persons
http://localhost/RESTDemo/api/Persons

我的Web.config中有以下配置:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Change 'Service1.svc' to 'api'" stopProcessing="true">
                <match url="^(.*)/RESTDemo/api/(.*)$" />
                <action type="Rewrite" url="{R:1}/RESTDemo/Service1.svc/{R:2}" logRewrittenUrl="true" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
我的问题是

  • 我做错了什么
  • 为什么我在日志文件中看不到重写的URL

  • 这是因为您的重写规则有问题,您可以尝试以下重写规则:

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Change 'Service1.svc' to 'api'" stopProcessing="true">
                    <match url="^(RESTDemo)/api/(.*)$" />
                    <action type="Rewrite" url="RESTDemo/Service1.svc/{R:2}" logRewrittenUrl="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
    
    
    

    从错误1开始
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Change 'Service1.svc' to 'api'" stopProcessing="true">
                    <match url="^(RESTDemo)/api/(.*)$" />
                    <action type="Rewrite" url="RESTDemo/Service1.svc/{R:2}" logRewrittenUrl="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>