我已将我的网站从使用 .htm/.html 页面转移到 aspx 页面。一些现有的网站/书签等将引用旧文件而不是 aspx 文件,所以我希望它们被发送到 aspx 版本(我保持相同的命名)。我不想在每个页面上添加重定向代码。
我怎么能这样做一次?
干杯
我已将我的网站从使用 .htm/.html 页面转移到 aspx 页面。一些现有的网站/书签等将引用旧文件而不是 aspx 文件,所以我希望它们被发送到 aspx 版本(我保持相同的命名)。我不想在每个页面上添加重定向代码。
我怎么能这样做一次?
干杯
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/
假设您使用的是 IIS,那么请查看URL Rewrite,这将使您能够轻松地将所有对 .html 的请求转换为 .aspx