我已將我的網站從使用.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