0

在我的情况,我有两个领域:对.NET核心/ IIS的web配置重写规则

domain.com 
domain1.com 

其中domain1.comdomain.com

别名为domain1.com我想只允许对网址的流量开始与api/并将所有其他流量重定向到具有301状态码的domain.com。

即我想允许,另一方面我想重定向到domain1.com/products/listdomain.com

任何人都可以请指导如何与web.config中实现这个像domain1.com/api/products/list请求?

回答

1

遵循URL重定向规则应该起作用。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="Domain1"> 
        <match url="^(.+)" /> 
        <conditions> 
         <add input="{HTTP_URL}" pattern="^/api/(.+)" negate="true" /> 
        </conditions> 
        <action type="Redirect" url="http://domain/{R:1}" redirectType="Permanent" appendQueryString="true" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

快速说明。

  • 我们捕获整个传入的网址,并在需要时使用match模式作为重定向的反向引用。
  • 而在conditions我们否定了API URL模式,因此该规则适用于包含/api的网址而不是
  • 重定向操作将捕获的反向引用并将其附加到域。

备注。

  • 您可能需要在规则调整斜线,我想总会有一个斜线/api之后。
  • 浏览器大量缓存永久性重定向,请务必在每次修改规则时使用新的隐身/私密会话。
+0

非常感谢你Ignas :) –