.Net 实现伪静态及意义

伪静态的用处:

搜索引擎会不收录带问号的网址,因为搜索引擎怕由于问号而陷入死循环,称为“搜索机器人陷阱”,所以很多带问号的地址搜索引擎不会进去。

带问号的网址,搜索引擎也是会收录的,权重不高。

伪静态对于搜索引擎来说,就是静态,因为地址中间没有带问号,所以没有真静态比伪静态收录的多的说法。

为啥要选择伪静态捏?

“Discuz!目前有 2129867 篇帖子,存储成html的话大约是 20799M,也就是 20G左右。这当中还不计算由于磁盘存储机制造成的空间浪费(100个 1k的文件占用的空间可能会是200K)。”

所谓的文本论坛,实际就跟真静态的说法差不多了,将数据存储在空间上面,大量的读写硬盘,等等。

删除更新html内容,会导致大量的磁盘操作以及大量的磁盘碎片,甚至会导致硬盘出现坏道。

伪静态的坏处

如果流量稍大一些,使用伪静态就会出现CPU超负荷,由于伪静态是用正则判断是不是真实地址,分辨到底显示那个页面的责任也直接指定转由CPU来判断了,所以CPU有量的上升,确实是伪静态最大的弊病。

应该使用静态还是伪静态?

1 使用静态和伪静态,对于SEO来说并没有什么区别。

2使用真静态可能会导致磁盘损坏并影响网站 论坛的性能。

3使用伪静态占用一定量的CPU占有率,大量使用将导致CPU超负荷。

总得来说,静态是为了SEO,既然静态是做给SEO看的,只需要伪静态给SEO就可以了,不需要给用户使用,所以,只要在专门提供SEO爬的 Archiver中使用伪静态就好了。

其实所谓的伪静态页面,就是指的URL重写,在ASP.NET中实现非常简单

首先你要在你的项目里引用两个DLL:

ActionlessForm.dll

URLRewriter.dll

真正实现重写的是 URLRewriter.dll   但是如果你要实现分页,那么必须使用这个ActionlessForm .dll

首先在web.config里写

<configSections>

<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />

</configSections>

<httpModules>

<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

</httpModules>

<!-- 下面是配置重写URL规则 -->

<RewriterConfig>

<Rules>

<RewriterRule>

<LookFor>~/Products/Jurisdiction_(\w{3})\.aspx</LookFor>

<SendTo>~/En/Jurisdiction.aspx?jurid=$1</SendTo>

</RewriterRule>

<RewriterRule>

<LookFor>~/Articles/(\d{1,})\.aspx</LookFor>      <!-- 这个是被代替后的文件名,使用到正则表达式 -->

<SendTo><![CDATA[~/En/Article_view.aspx?article_id=$1]]></SendTo>      <!-- 这个是要给代替的网页,一般是带有问号后面带参数的网页 -->

</RewriterRule>

<RewriterRule>

<LookFor>~/Articles/(\d{1,})_(\d{1,})\.aspx</LookFor>

<SendTo><![CDATA[~/En/Article_view.aspx?article_id=$1&page=$2]]></SendTo>

</RewriterRule>

</Rules>

</RewriterConfig>

这样比如上面的网址http://localhost/En/Article_View.aspx?article_id=9就可以用http://localhost/Articles/9.aspx来代替,当然,你代替后的扩展名可以用任何iis能解释的扩展名,如果你喜欢用htm做扩展名,那么在配置转发规则上面配置为htm为扩展名的,同样有些文章可能很长,往往我们会把一个文章分成几页,那么根据上面的配置,我们如果想访问http://localhost/En/Article_View.aspx?article_id=9&page=3我们就可以用http://localhost/Articles/9_3.aspx来代替,这样当搜索引擎来抓起你的网页的时候,就会收录你这些网址下去,别人搜索到你网页的时候,就可以从这些地址链接过来。

然后这样操作:

右键点我的电脑-->管理-->展开‘服务和应用程序‘-->internet信息服务-->找到你共享的目录-->右键点击属性 -->点击‘配置‘-->

映射下面 -->找到.aspx的可执行文件路径 复制路径-->粘贴路径-->扩展名为".html"-->然后把检查文件是否存在的勾去掉 这样就可以了

之前记得可以利用HttpModule来实现URL重写的,具体忘记了。

HTTPModule是向实现提供模块初始化和处置事件,负责监听HttpRequest,同时对HttpRequest增添或过滤掉一部分内容。当一个HTTPRequest到达HTTPModule时,整个ASP.Net Framework系统并没有对这个请求做任何处理,对于Http请求来两,HttpModule是一个HTTP请求的“必经之地”。

最近这个网站用的伪静态也是利用了一个组件,在web.config中配置,网站根目录下有个http.ini文件,ini文件也是利用正则表达式,判断地址,然后解析地址,生成伪静态的网址。

时间: 2024-10-10 06:07:30

.Net 实现伪静态及意义的相关文章

什么是伪静态,以及apache 如何实现伪静态

原文链接:http://www.cnblogs.com/ainiaa/archive/2010/07/25/1784564.html php伪静态 一直在做php的开发工作.在开发的过程中老早就听说了“伪静态”这一说.但是一直没有对其进行了解. 今天终于下定决定 要好好的了解下这方面的内容. 首先,什么是伪静态: 伪静态又名URL重写,是动态的网址看起来像静态的网址.换句话说就是,动态网页通过重写 URL 方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面. 另外在补充

伪静态和真静态

 纯静态是指所有由HTML代码格式页面组成的站点,所有的内容包括在网页文件里.网页上也能够出现各种视觉动态效果,如GIF动画.FLASH动画.滚动字幕等. ?每一个静态网页都有一个固定的网址,文件名称均以htm.html.shtml等为后缀: ?静态网页一经公布到server上,不管是否被訪问,都是一个独立存在的文件. ?静态网页的内容相对稳定.不含特殊代码,因此easy被搜索引擎检索: ?静态站点没有数据库的支持,在站点制作和维护方面工作量较大. ?因为不需通过数据库工作,所以静态网页的訪问速

php伪静态

首先,什么是伪静态: 伪静态又名URL重写,是动态的网址看起来像静态的网址.换句话说就是,动态网页通过重写 URL 方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面. 另外在补充两个名词解析 静态网址:纯静态HTML文档,能使用filetype:htm 查询到的网页 动态网址:内容存于数据库中,根据要求显示内容,URL中以 ? # & 显示不同的参数,如:news.php?lang=cn&class=1&id=2 动态.静态.伪静态之间的利与弊(新) 动

php伪静态(转载)

原文地址:http://www.cnblogs.com/ainiaa/archive/2010/07/25/1784564.html 一直在做php的开发工作.在开发的过程中老早就听说了"伪静态"这一说.但是一直没有对其进行了解. 今天终于下定决定 要好好的了解下这方面的内容. 首先,什么是伪静态: 伪静态又名URL重写,是动态的网址看起来像静态的网址.换句话说就是,动态网页通过重写 URL 方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面. 另外在补充两个

五,伪静态技术实现页面静态化

如果一个网站使用真静态技术,会生成海量的html静态页面,可以考虑使用伪静态技术来优化我们的网站. url重写(伪静态)的好处:(1)可以方便实现对引擎的优化,并且比生成静态页面更加方便.(2)占空间比较小.(3)首页每天都自动变化,不用维护.网站首页一般都有热点排行之类的,你可以设为24小时排行,一周排行,再加上最新文章,最新点评等.这样首页天天是有变化的.(4)便于广告的轮显.比如,可以把art1234.php,这个虚成n个页,如art_1234.php,news_1234.php,,top

Nginx/Apache之伪静态设置 - 运维小结

一.什么是伪静态伪静态即是网站本身是动态网页如.php..asp..aspx等格式动态网页有时这类动态网页还跟"?"加参数来读取数据库内不同资料,伪静态就是做url重写操作(即rewrite).很典型的案例即是discuz论坛系统,后台就有一个设置伪静态功能,开启伪静态后,动态网页即被转换重写成静态网页类型页面,通过浏览器访问地址和真的静态页面没区别.但是记住:做伪静态的前提就是服务器要支持伪静态重写URL Rewrite功能. 考虑搜索引擎优化(即SEO),将动态网页通过服务器处理成

aspnetcore 实现简单的伪静态化

aspnetcore 实现简单的伪静态化 Intro 在我的活动室预约项目中,有一个公告模块,类似于新闻发布,个人感觉像新闻这种网页基本就是发布的时候编辑一次之后就再也不会改了,最适合静态化了, 静态化之后用户请求的就是静态文件基本不再需要服务器端查询数据库甚至服务器端渲染,可以一定程度上提升服务器的处理能力以及优化用户体验,而且这种静态化的url对 SEO 比较友好. 由于我的这个项目正在开发中,迁移起来不太方便,所以使用的是伪静态化,看上去是访问的 *.html,实际上并不是 html,而是

回滚的意义---JDBC事务回滚探究

JDBC手动事务提交回滚的常见写法一直是rollback写在commit的catch之后: try{ conn.setAutoCommit(false); ps.executeUpdate(); ps.executeUpdate(); conn.commit(); }catch(Exception e){ conn.rollback(); } 但是,这种回滚是没有意义的: 一旦commit前出错, 就不提交了, 回滚无用 一旦commit了, 说明没错, 不用回滚 找到一篇和我观点相同的文章:

DIV+CSS的好处和意义

DIV+CSS的好处和意义 http://www.ijavascript.cn/jiaocheng/div-css-sense-435.html 业界越来越关注DIV+CSS的标准化设计,大到各大门户网站,小到不计其数的个人网站,在Div+CSS标准化的影响下,网页设计人员已经把这一要求作为行业标准.那么什么是Div+CSS标准?Div+CSS的标准化设计到底有什么好处? Div 全称 division 意为“区分”使用 DIV 的方法跟使用其他 tag 的方法一样. 如果单独使用 DIV 而不