根据用户尝试的URL使用不同的404错误页面

本文关键字:错误 用户 URL | 更新日期: 2023-09-27 18:20:22

(注意:我对asp.net/c#很陌生,请耐心等待)

在我的网站上,我在web.config 中使用了一个自定义的404错误页面

<customErrors mode="RemoteOnly" defaultRedirect="http://mywebsite.org/404">
  <error statusCode="404" redirect="http://mywebsite.org/404" />
</customErrors>

现在我想添加另外404个页面,这些页面是由包含特定字符串的URL"触发"的。例如,如果URL包含/library/,我希望用户重定向到http://mywebsite.org/library-404,其中包含特定于网站库部分的信息。包含/services/和其他内容的URL也是如此。

这能做到吗?如果是,如何?谢谢你抽出时间。

根据用户尝试的URL使用不同的404错误页面

您可以尝试使用ASP.NET MVC。设置路由以映射Url。

您可以在Global.asax.cs中定义方法Application_Error,并像这样处理

void Application_Error(object sender, EventArgs e)
{
    var error = Server.GetLastError();
    var code = (error is HttpException) ? (error as HttpException).GetHttpCode() : 500;
    string path = Request.Path;
    if (code == 404)
    {
        if (new Regex(@"'/library'/", RegexOptions.IgnoreCase).IsMatch(path))
        {
            Server.ClearError();
            Response.Redirect(String.Format("~/Library/Error404"));
        }
    }
}