我正在重新设计一个网站,新网站带有URL路由功能,并且需要更改一些旧网址。但我想正确地将旧网址的用户重定向到网站的新网址。比较URL和if语句以正确重定向到新URL
旧的URL http://www.abc.com/about
新URL http://www.abc.com/about-us
所以想用下面的代码做它global.asx文件。
if (HttpContext.Current.Request.Url.ToString().ToLower().Contains("http://www.abc.com/about"))
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.Redirect("http://www.abc.com/about-us");
}
但是,这将触发代码执行以下
http://www.abc.com/about
http://www.abc.com/about-us
http://www.abc.com/about-us/history
http://www.abc.com/about-us/vision
什么是比较URL的更好的办法,我应该用一个简单的老学校if (A == B)
或者是他们做的更好的办法中提到的所有网址它
if (HttpContext.Current.Request.Url.ToString().ToLower().Equals("http://www.abc.com/about")
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.Redirect("http://www.abc.com/about-us");
}
或使用本
if (HttpContext.Current.Request.Url.ToString().ToLower()=="http://www.abc.com/about")
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.Redirect("http://www.abc.com/about-us");
}
正则表达式也可以使用,但我不善于和将它,除非我不是绝对确定。
有什么建议,在这种情况下
UPDATE:决定做这样
if (HttpContext.Current.Request.Url.ToString().ToLower().Equals("http://www.abc.com/about") || (HttpContext.Current.Request.Url.ToString().ToLower().Equals("http://www.abc.com/about/")
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.Redirect("http://www.abc.com/about-us");
}
而不是使用这我建议你在web.config中编写重写规则。 –