备注:这里我用到了Response.RedirectPermanent()用于做301跳转,
如:我希望访问网站的url访问地址为:http://m.shop/abc.html ,用户输入的访问地址:http://m.shop/ABc.html,就可以用到这个方法了,对上个请求返回301,发出一个新的正确的Url地址的请求。
/// <summary>
/// 判断首页是否包含index.html或者index.aspx均301跳。
/// </summary>
/// <returns></returns>
private bool RedirectIndexUrl()
{
bool go301 = false;
Uri originalUri = base.Request.Url;
if (originalUri.Host.StartsWith(ConfigSetting.WEB_SITE_URL, StringComparison.CurrentCultureIgnoreCase))
{
if (originalUri.AbsolutePath.ToLower().IndexOf("index", StringComparison.Ordinal) > )
{
string url301 = UrlRoutingBus.GetHomeUrl(base.Request, base.CultureParameter);
base.Response.RedirectPermanent(url301, true);
go301 = true;
}
}
return go301;
}
在ASP.NET4.0之前,开发人员经常使用Response.Redirect()方法,用编程的手法,将对老的URL的请求转到新的URL上。
但许多开发人员没有意识到的是,Response.Redirect()方法发的是个 HTTP 302 Found (临时转向) 回复,会在用户尝试访问老的URL时,导致多余的HTTP往返。搜索引擎一般不会跟随多个重新转向跳转,意味着使用一个临时转向会负面影响你的网页排名。
随着ASP.NET的发展,在ASP.NET 4中引进了一个新的Response.RedirectPermanent(string url)辅助方法,可以用来做一个HTTP 301 (永久性重定向)重新定向。这会导致能识别永久性重新定向的搜索引擎和其他用户代理保存和使用与内容相关联的新URL。这会使你的内容编入索引,你的搜索引擎页面排名得到提高。
其实,早在ASP.NET MVC 中也有类似的代码:Response.RedirectToRoute(string routeName) 和Response.RedirectToRoutePermanent(string routeName)辅助方法,可以用来通过URL导向引擎做临时或永久性的重新定向。
现在已经用到ASP.NET 4.0 Web Forms中。通常用Response.RedirectPermanent() 方法来进行SEO网站优化。
参考资料:https://www.cnblogs.com/lyl6796910/p/3793588.html