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