2012-07-15 57 views
0

我已將我的網站從使用.htm/.html頁面移至aspx頁面。一些現有的網站/書籤等將引用舊文件,而不是aspx文件,所以我希望它們被髮送到aspx版本(我保持相同的命名)。我不想在每個頁面上添加重定向代碼。如果htm或html頁面不存在,請檢查aspx頁面是否存在

我該如何做一次?

乾杯

+0

什麼web服務器,你運行? – dianovich 2012-07-15 22:04:57

回答

0

假設你正在使用IIS,然後看看URL Rewrite,這將給你可以輕鬆地查找.html的所有請求轉換成的.aspx

+0

沒有什麼東西在global.asax中,我可以檢查它是否有404錯誤,如果它的htm或html頁面檢查aspx頁面是否存在,以及它是否重定向到它?我不知道如何我可以編碼的 – 2012-07-15 22:53:49

+0

也我沒有訪問iis – 2012-07-15 22:55:21

+0

@Gazza,看看HatSoft在他的答案中談到的HttpHandlers,看起來像你的前進方向。如果你沒有訪問IIS,那麼你有很少的選擇 – freefaller 2012-07-16 07:42:46

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重寫

但是你也可以通過代碼實現這一點,寫你自己的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/

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

+0

沒有什麼東西在global.asax,我可以檢查它是否404錯誤,如果它的HTM或HTML頁檢查,如果ASPX頁面存在,如果它確實重定向到它?即時通訊不知道如何我可以編碼。我也沒有訪問iis – 2012-07-16 02:15:44

+0

@GazzaT是的,你可以看到我更新的答案 – HatSoft 2012-07-16 07:55:19