我正在为我的一位客户创建一个新网站。他们的旧网站是使用wordpress开发的,因此它有100个破碎的网址,如下所示:
http://www.example.com/best-gym-in-town/
http://www.example.com/video-gallery/
http://www.example.com/fun-stuff/
http://www.example.com/are-you-a-diabetes-patient/
http://www.example.com/john-in-media/
http://www.example.com/photo-gallery/
http://www.example.com/nutrition-program-that-suits-your-lifestyl/
http://www.example.com/our-range-of-fitness-tests/
http://www.example.com/corporate-group-workshops/some-article/another-article
我正在asp.net mvc 5中开发新站点。我想在web.config中编写一个httpRedirect规则,可以将上述任何URL重定向到home或任何特定页面。
到目前为止,我正在考虑解决方案
<location path="about-me">
<system.webServer>
<httpRedirect enabled="true" destination="/home"
httpResponseStatus="Permanent" />
</system.webServer>
</location>
但是我必须在web.config中写出100个这样的条目。我正在寻找一个更好,更有效的替代方案
答案 0 :(得分:0)
在Global.asax中,挂钩char
方法并从那里重定向到主页
Application_BeginRequest
或者,您可以在Global.asax中挂钩Application_Error方法,然后从那里检测404
protected void Application_BeginRequest(object sender, EventArgs e)
{
try
{
if (HttpContext.Current.Request.Url.AbsolutePath.Contains("-")){
HttpContext.Current.Response.RedirectPermanent("/");
}
}
catch (ThreadAbortException){}
}