首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务版本控制方案的IIS7 URL重写规则

服务版本控制方案的IIS7 URL重写规则
EN

Stack Overflow用户
提问于 2012-02-02 20:17:32
回答 2查看 954关注 0票数 1

要对RESTful服务进行版本控制,我想使用URL重写模块执行以下操作;

将服务映射到服务器/ https://server/service/ /v1/如果Accept头(HTTP_ACCEPT?)是application/vnd.mycompany.service+xml

将服务映射到服务器/ https://server/service/ /v2/如果Accept头(HTTP_ACCEPT?)是application/vnd.mycompany.service-2+xml

我尝试了下面的规则,但是我不能让它工作:

代码语言:javascript
复制
<rules>
   <rule name="Route request to correct service version" patternSyntax="Wildcard">
      <match url="*service*" />
         <conditions>
            <add input="{HTTP_ACCEPT}" pattern="application/vnd.mycompany.*" />
         </conditions>
      <action type="Rewrite" url="Service/v1/{R:2}" logRewrittenUrl="true" />
   </rule>
</rules>

感谢任何人的帮助!

--larsw

EN

回答 2

Stack Overflow用户

发布于 2012-02-02 21:29:23

由于不熟悉网址重写机制,我不能直接帮助您,但是,如果您使用Web API托管您的服务,那么HttpMessageHandler将能够基于accept标头进行这种网址转换。

票数 2
EN

Stack Overflow用户

发布于 2012-02-03 01:11:23

解决了它。

a)不知何故,applicationHost.config中的RedirectModule没有连线。b)以下配置起作用:

代码语言:javascript
复制
<rule name="Route request to correct service version" patternSyntax="Wildcard">                           
  <match url="*service*" />                                                                  
       <conditions logicalGrouping="MatchAny" trackAllCaptures="true">                                    
          <add input="{HTTP_ACCEPT}" pattern="*application/vnd.mycompany.*" />                             
       </conditions>                                                                                      
       <action type="Rewrite" url="service/v1{R:2}" logRewrittenUrl="true" />                  
</rule> 

c)我在{R:2}变量前有一个额外的斜杠,导致重写的url有一个双斜杠。

--larsw

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9112177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档