0

我已将我的网站从使用 .htm/.html 页面转移到 aspx 页面。一些现有的网站/书签等将引用旧文件而不是 aspx 文件,所以我希望它们被发送到 aspx 版本(我保持相同的命名)。我不想在每个页面上添加重定向代码。

我怎么能这样做一次?

干杯

4

2 回答 2

0

OP评论后更新:

如果你想捕捉 Global.asax.cs 中的错误,那么请这样做

protected void Application_Error(Object sender, EventArgs e)
{
    HttpContext context= HttpContext.Current;

    Exception exception = context.Server.GetLastError();

    int httpCode = ((HttpException)exception).GetHttpCode();
    if (httpCode == 404)
    {
      ctx.Server.RedirectPermanent("~/yournewfilename.aspx", true);
     //For more infor on RedirectPermanent got to http://msdn.microsoft.com/en-us/library/dd322042.aspx
    }
}

============ 否则===============

如果你想要现成的东西,那么http://www.isapirewrite.com/或 URL Rewrite

但是您也可以通过代码实现这一点,通过为传入请求实现 IHttpHanlder 接口来编写自己的 httphandler,在您的情况下,如果对 .htm 或 .html 的请求然后重定向到 .aspx

如果您决定编写自己的 HttpHandler 有用的链接

http://msdn.microsoft.com/en-us/library/5c67a8bd(v=vs.85).aspx

http://codebetter.com/karlseguin/2006/05/25/httphandlers-%E2%80%93-learn-them-use-them/

http://www.hanselman.com/blog/ABoilerplateHttpHandler.aspx

于 2012-07-15T22:27:22.633 回答
0

假设您使用的是 IIS,那么请查看URL Rewrite,这将使您能够轻松地将所有对 .html 的请求转换为 .aspx

于 2012-07-15T22:17:38.800 回答