Asp.net core .Net核心/IIS web配置重写规则
在我的情况下,我有两个领域:Asp.net core .Net核心/IIS web配置重写规则,asp.net-core,web-config,url-rewrite-module,asp.net-core-2.0,iis-10,Asp.net Core,Web Config,Url Rewrite Module,Asp.net Core 2.0,Iis 10,在我的情况下,我有两个领域: domain.com domain1.com 其中domain1.com是domain.com 对于domain1.com我只允许以api/开头的URL的流量,并将所有其他流量重定向到domain.com,状态代码为301 i、 e.我想允许像domain1.com/api/products/list这样的请求,另一方面,我想将domain1.com/products/list重定向到domain.com 任何人都可以指导如何使用web.config实现这一点吗?
domain.com
domain1.com
其中domain1.com
是domain.com
对于domain1.com
我只允许以api/
开头的URL的流量,并将所有其他流量重定向到domain.com,状态代码为301
i、 e.我想允许像domain1.com/api/products/list
这样的请求,另一方面,我想将domain1.com/products/list
重定向到domain.com
任何人都可以指导如何使用web.config实现这一点吗?下面的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>
快速解释
- 我们使用
模式捕获整个传入URL,以便在需要时为重定向返回参考match
- 在
我们否定API URL模式,因此该规则应用于不包含条件中
的URL/API
- 重定向操作获取捕获的返回引用并将其附加到域
- 您可能需要调整规则中的斜杠,我假设
之后总会有斜杠/api
- 浏览器大量缓存永久重定向,请确保每次修改规则时使用新的匿名/专用会话
<?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>
快速解释
- 我们使用
模式捕获整个传入URL,以便在需要时为重定向返回参考match
- 在
我们否定API URL模式,因此该规则应用于不包含条件中
的URL/API
- 重定向操作获取捕获的返回引用并将其附加到域
- 您可能需要调整规则中的斜杠,我假设
之后总会有斜杠/api
- 浏览器大量缓存永久重定向,请确保每次修改规则时使用新的匿名/专用会话