ASP.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"-->然后把检查文件是否存在的勾去掉 这样就可以了
以上学习资料参考来源于新浪欧阳孔剑的blog,自己整理了一下。
之前记得可以利用HttpModule来实现URL重写的,具体忘记了。
HTTPModule是向实现提供模块初始化和处置事件,负责监听HttpRequest,同时对HttpRequest增添或过滤掉一部分内容。当一个HTTPRequest到达HTTPModule时,整个ASP.Net Framework系统并没有对这个请求做任何处理,对于Http请求来两,HttpModule是一个HTTP请求的“必经之地”。
最近这个网站用的伪静态也是利用了一个组件,在web.config中配置,网站根目录下有个http.ini文件,ini文件也是利用正则表达式,判断地址,然后解析地址,生成伪静态的网址。
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
ASP.Net 实现伪静态方法及意义相关推荐
- 浅谈ASP.NET中render方法
2011-06-08 11:36 runyl 博客园 我要评论(1) 字号:T | T Control.Render 方法是将服务器控件内容发送到提供的HtmlTextWriter 对象,此对象编写将 ...
- 20种看asp源码的方法及工具
作者:欧杨飘雪 http://blog.csdn.net/flyingsnowy/ 众所周知windows平台漏洞百出,补丁一个接一个,但总是补也补不净.我把我所知道的20种看asp源码的方法总结了 ...
- Windows Server2003 sp2重装IIS后无法浏览asp.net网页解决方法
Windows Server2003 sp2重装IIS后无法浏览asp.net网页,但可以查看图片和html页面,说明是iis重装后asp.net没有注册好,因此需要重新注册asp.net,具体方法如 ...
- HTML——ASP的 Response.write 方法输出中文乱码解决方案
ASP的 Response.write方法输出的数据可能造成乱码问题 可以添加HTML的head标签限制页面的编码和限制ASP的编码解决 <!DOCTYPE html> <html ...
- ajax webmethod,JQuery直接调用asp.net后台WebMethod方法
利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法.[WebMethod] 命名空间 1.无参数的方法调用, 注意:1.方法一定要静态方法,而且要有[WebMethod]的 ...
- 网站安全之ASP程序加密解密方法全面解析
如今,用ASP技术构建的网站随处可见.由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题 ...
- asp.net调用js方法小结
asp.net调用js方法小结 key:asp.net js方法互调 asp.net 前台如何调用后台方法 1. javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在 ...
- asp.net jquery.Ajax() 方法调用后台方法
利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. 先来个简单的实例热热身吧. 1.无参数的方法调用 asp.net code: view plaincopy to clip ...
- 服务器宝塔怎么开启php5.4伪静态,WeCenter在宝塔面板LNMP环境下开启伪静态方法
WeCenter这款程序相信很多站长都使用过,风格类似于知乎社区,是一款体验很不错的程序.正好博主想要搭建一个论坛,用过DZ程序,还用过很多的轻论坛程序,最后博主想要试下WeCenter程序.在搭建的 ...
最新文章
- Lesson 8.18.2 单层回归神经网络torch.nn.Linear实现单层回归神经网络的正向传播
- ASP.NET开发:在用户控件中添加属性
- opencv 最大连通域_opencv 查找连通区域 最大面积实例
- (4)ISE14.7 ChipScope使用流程(FPGA不积跬步101)
- 两个形状不同的长方形周长_人教版数学六年级上册 5.2:圆的周长 微课视频|知识点|课件解析|同步练习...
- koa 接口返回数据_koa+node基础搭建到实现api接口
- linux SHELL下替代sed、ask的常用字符串处理(截取,判断、替换)
- Json扩展 (转)
- 海南航空宁波到重庆的变态机票
- VS2019 配色_新手设计师如何做好设计配色
- python折痕检测_无纺布折痕检测(2)· 基于Laws纹理滤波的折痕检测
- 【随笔】在CSDN的第一年,你好,桐小白~ —— 在CSDN的一岁生日
- 汽车Vin码识别/手机端扫描识别汽车车架号SDK
- 《算竞(紫书)》笔记1 STL入门
- 杂事记诗-- 读网文《穷鬼的上下两千年》有感
- 买笔记本的13个验机步骤
- 小米路由器mini 半自动刷机进入breed(无需U盘刷机)
- mysql中datetime_MySQL datetime类型
- 婚纱摄影APP软件开发详细
- JS操作COOKIES