【问题标题】:simple redirect from one page to another in web.config在 web.config 中从一个页面简单地重定向到另一个页面
【发布时间】:2020-01-29 19:57:33
【问题描述】:

我正在使用带有 IIS 8.5 的 Asp.Net Web 表单。

我已经有 url routing 并在 web.config 中设置 httperrors 以捕获 404/500 错误,但我现在需要将一些旧页面重定向到新页面目的地。

旧页面将不复存在,因此在重定向之前不能被HttpErrors代码捕获。

我想将页面从/widgets/oldwidget 重定向到/newwidget

注意:/newwidget 是重新路由的 url,物理页面将类似于:/pages/oldwidget.aspx

我很难找到关于如何在这种情况下使用 httpdirect 的明确说明。

有人给点建议吗?这是正确的方法吗?

 <httpRedirect enabled="false" httpResponseStatus="Permanent" exactDestination="true">
     // Redirect my page
 </httpRedirect>

<httpErrors errorMode="DetailedLocalOnly">
    <clear/>
    <remove statusCode="404" subStatusCode="-1"/>
    <remove statusCode="500" subStatusCode="-1" />
    <error statusCode="404" path="/404" responseMode="ExecuteURL" />
    <error statusCode="500" path="/500" responseMode="ExecuteURL" />
</httpErrors>

【问题讨论】:

  • 你使用 webforms 还是 MVC?
  • 请考虑使用 IIS URL Rewrite 将那些不存在的 URL 重定向到新的 URL。为简单起见,应保持 404/500 不变。

标签: asp.net iis web-config http-redirect


【解决方案1】:

根据您的描述,我建议您可以尝试使用 url rewrite 来实现您的要求。

您可以在此url 上安装 url 重写扩展。

然后您可以在配置文件中添加以下配置设置。

<system.webServer>
<rules>
                <rule name="Rereoute" stopProcessing="true">
                    <match url="widgets/oldwidget" />
                    <action type="Redirect" url="http://domainname.com/newwidget" />
                </rule>


</rules>
</system.webServer>

【讨论】:

  • 感谢您的回复 - 我是为每个网址创建一个新规则还是只是添加另一个匹配/操作?
  • 在我看来,这是基于您的要求。如果您可以生成符合您所有要求的正则表达式,则无需为每个 url 创建规则。如果您无法生成正则表达式,我建议您可以为每个 url 创建一个新规则。
猜你喜欢
  • 2012-04-18
  • 2021-06-24
  • 1970-01-01
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 2014-02-17
  • 1970-01-01
相关资源
最近更新 更多