ASP.NET web.config 特定重定向,带有“catch all”

问题描述 投票:0回答:2

我想知道是否有人可以阐明我认为不可能的事情......

某个网站即将停用,网站所有者提供了大量要强制执行的 URL 重定向列表 (5000)。此列表中的绝大多数条目都重定向到通用登录页面。

所以,问题是有没有办法在 Web 配置中使用 HTTP 重定向功能来处理特定的重定向(oldsite.com/page1 到 newsite.com/page1、oldsite.com/page2 到 newsite.com/page2 等等)并将特定重定向列表中未包含的任何内容定向到通用登陆页面?

谢谢, C

asp.net iis umbraco
2个回答
1
投票

是的,我也这么认为。 IIS 重写模块允许您定义任意数量的重定向规则,我相信它们将“依次”执行。因此,您应该能够为特定 URL(oldsite/page1 -> mewsite/page1 等)创建规则,然后在这些规则之后进行包罗万象。 https://learn.microsoft.com/en-us/iis/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module#creating-a-redirect-rule


0
投票

是的,您可以使用 IIS 中的重写模块来处理特定重定向,并将特定重定向列表之外的内容路由到通用登录页面。

以下是如何在 web.config 中设置重定向规则的示例:

    <rewrite>
        <rules>
            <!-- Specific redirects -->
            <rule name="Redirect page1">
                <match url="^page1$" />
                <action type="Redirect" url="https://newsite.com/page1" />
            </rule>
            <rule name="Redirect page2">
                <match url="^page2$" />
                <action type="Redirect" url="https://newsite.com/page2" />
            </rule>
            <!-- Add more specific redirects as needed -->

            <!-- Catch-all redirect -->
            <!-- Any other URL will be redirected to the generic login page -->
            <rule name="Redirect to Generic Landing Page">
                <match url=".*" />
                <action type="Redirect" url="https://newsite.com/generic-landing-page" />
            </rule>
        </rules>
    </rewrite>
© www.soinside.com 2019 - 2024. All rights reserved.