仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 605|回复: 8
打印 上一主题 下一主题

[学习教程] NET网页编程之在Asp.Net中完成301页面重定向

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:23:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
什么叫数据库怎么样?什么意思?你想单学数据库。(其实变成是我问的)成绩形貌:
由于本站刚入手下手做的时分没有思索到url对搜刮引擎友爱的成绩,就随便用了aspx?id=1如许的静态参数格局。厥后渐渐对搜索引擎优化的常识懂得了一些,晓得了包括静态参数的url地点对搜刮引擎很不友爱。没举措,利用了伪静态来埋没了url前面的静态参数(利用办法拜见:怎样经由过程RewritePath办法重写Url地点完成伪静态),如以后页面的url地点。但如许就带来了一个成绩,本来静态参数的地点已被收录了,如今又完成了伪静态,那末新的url与本来的url一定纷歧样了,对搜刮引擎来讲,是两个完整分歧的地点,那末它又会从头收录一遍,如许就形成了搜刮引擎以为你的网站中有大批的反复内容。

在网上搜刮了大批的材料,终究在google的办理员工具匡助页面中找到了成绩的办理办法,那就是把本来的地点利用301定向到新的地点,如许,搜刮引擎就晓得原地点和新地点是统一个地点了,就不会呈现上述的成绩了。

完成办法以下:
由于我的站是在IHttpModel类的BeginRequest中使用RewritePath完成了URL地点重写,以是我先在BeginRequest事务中将必要重定向的地点做了标识:
publicvoidInit(HttpApplicationcontext)
{
context.BeginRequest+=newEventHandler(context_BeginRequest);
}

voidcontext_BeginRequest(objectsender,EventArgse)
{
if(path.Contains(".aspx")||path.Contains("?"))
{
context.Items.Add("IsRedirect",true);
context.Items.Add("Location","/ac/ID"+context.Request.QueryString["ID"]);
context.RewritePath(path);
}
}
}


然后在终极必要重定向的页面中设置页面的Http形态码:
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Context.Items["IsRedirect"]!=null&&Context.Items["Location"]!=null)
{
HttpContext.Current.Response.StatusCode=301;
HttpContext.Current.Response.Status="301MovedPermanently";
HttpContext.Current.Response.AddHeader("Location",Context.Items["Location"].ToString());
}
}

运转效果:
我们使用Http前往形态工具查询一个被重定向的链接地点,前往了局以下:

查询地点:www.lmwlove.com/Article/ArticleDetail.aspx?ID=288
前往形态码:301
网页前往HEAD信息以下
Cache-Control:private
Content-Type:text/html;charset=utf-8
Location:/ac/ID288
Server:Microsoft-IIS/7.0
X-AspNet-Version:2.0.50727
X-Powered-By:ASP.NET
Date:Wed,21Sep201106:36:49GMT
Content-Length:34349

上述了局申明:我的设置失效了。
如许,就不会由于我们Url地点改动而使我们的网站的权重丧失了,也不会由于这类情误况让搜刮引擎误以为我们网站有大批的反复内容了。以前学了大概半年时间的asp(没有机会做大系统,最多是自己对公司系统做些调整和修改还有一些小程序)。应该说开始接触asp.net是今年元月5号的事。现在很想把公司的系统重新用.net来架构,却不知道如何下手。
柔情似水 该用户已被删除
沙发
发表于 2015-1-18 13:44:44 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-24 11:50:21 | 只看该作者
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
admin 该用户已被删除
地板
发表于 2015-2-1 09:59:48 | 只看该作者
ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。
第二个灵魂 该用户已被删除
5#
发表于 2015-2-7 03:38:24 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-20 12:12:19 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
活着的死人 该用户已被删除
7#
发表于 2015-3-6 17:42:29 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
小女巫 该用户已被删除
8#
发表于 2015-3-13 06:10:38 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
小妖女 该用户已被删除
9#
发表于 2015-3-20 15:21:38 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-2-23 17:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表