我已将我的网站从使用.htm/.html页面移至aspx页面。一些现有的网站/书签等将引用旧文件,而不是aspx文件,所以我希望它们被发送到aspx版本(我保持相同的命名)。我不想在每个页面上添加重定向代码。如果htm或html页面不存在,请检查aspx页面是否存在
我该如何做一次?
干杯
我已将我的网站从使用.htm/.html页面移至aspx页面。一些现有的网站/书签等将引用旧文件,而不是aspx文件,所以我希望它们被发送到aspx版本(我保持相同的命名)。我不想在每个页面上添加重定向代码。如果htm或html页面不存在,请检查aspx页面是否存在
我该如何做一次?
干杯
假设你正在使用IIS,然后看看URL Rewrite,这将给你可以轻松地查找.html的所有请求转换成的.aspx
没有什么东西在global.asax中,我可以检查它是否有404错误,如果它的htm或html页面检查aspx页面是否存在,以及它是否重定向到它?我不知道如何我可以编码的 – 2012-07-15 22:53:49
也我没有访问iis – 2012-07-15 22:55:21
@Gazza,看看HatSoft在他的答案中谈到的HttpHandlers,看起来像你的前进方向。如果你没有访问IIS,那么你有很少的选择 – freefaller 2012-07-16 07:42:46
更新从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重写
但是你也可以通过代码实现这一点,写你自己的HttpHandler通过实施该IHttpHanlder接口传入的请求,并在你的情况下,它是很简单如果.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/
没有什么东西在global.asax,我可以检查它是否404错误,如果它的HTM或HTML页检查,如果ASPX页面存在,如果它确实重定向到它?即时通讯不知道如何我可以编码。我也没有访问iis – 2012-07-16 02:15:44
@GazzaT是的,你可以看到我更新的答案 – HatSoft 2012-07-16 07:55:19
什么web服务器,你运行? – dianovich 2012-07-15 22:04:57