对.NET核心/ IIS的web配置重写规则
问题描述:
在我的情况,我有两个领域:对.NET核心/ IIS的web配置重写规则
domain.com
domain1.com
其中domain1.com
是domain.com
别名为domain1.com
我想只允许对网址的流量开始与api/
并将所有其他流量重定向到具有301状态码的domain.com。
即我想允许,另一方面我想重定向到domain1.com/products/list
domain.com
任何人都可以请指导如何与web.config中实现这个像domain1.com/api/products/list
请求?
答
遵循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
之后。 - 浏览器大量缓存永久性重定向,请务必在每次修改规则时使用新的隐身/私密会话。
非常感谢你Ignas :) –