1. ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置
  2.  
  3. 最近在写一个CMS的内容管理系统,需要用到一个伪静态方面的方法,在网上找了一下这方面的资料,现将这方面的资源记录一下。
  4.  
  5. 本机环境:
  6.  
  7. Window server 2008 R2 Enterprise 操作系统+SQL Server 2008 R2 Enterprise企业版数据+Visual Studio 2010 SP1
  8.  
  9. 普及一下伪静态方面的知识,
  10.  
  11. 1、伪静态简单一点儿来说,其实就是重写了URL,最大的好处便于搜索引擎抓取,因为搜索引擎喜欢静态网站,类似于.html或.htm后缀的网页。
  12.  
  13. 2、使用静态文件会占用大量的硬盘空间,并且会加重磁盘IO的负核,使用伪静态,一来可以节省硬盘空间,减少一部分的磁盘IO的负核,二来,在网站的进化过程中可能会有一些业务上的调整,也便于以后网站升级进化。
  14.  
  15. 3、伪静态缺点,则会加重CPU的负担。
  16.  
  17. 好了,我只了解这一部分。为了SEO还是使用部分伪静态吧。
  18.  
  19. 使用的两个DLL
  20.  
  21. URLRewriter.dll
  22. ActionlessForm.dll
  23.  
  24. 下载地址:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
  25.  
  26. 该安装包中包含了该DLL的源代码,喜欢研究的朋友可以直接研究代码。
  27.  
  28. 同时,该安装包还包含一个示例,木有研究,只是打开看了看web.config配置信息,现将配置伪静态部分贴到下面。
  29.  
  30. 使用以下配置,我发现当页面中一个APS.NETbutton按钮提交不了。介个目前还木有研究,需要继续深入的研究。
  1. <?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <!--
  4. 有关如何配置 ASP.NET 应用程序的详细消息,请访问
  5. http://go.microsoft.com/fwlink/?LinkId=169433
  6. -->
  7.  
  8. <configuration>
  9. <configSections>
  10. <section name="RewriterConfig" requirePermission="false" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  11. </configSections>
  12. <RewriterConfig>
  13. <Rules>
  14. <RewriterRule>
  15. <!--一个参数-->
  16. <LookFor>~/Articles/articles_(.[\d]*)\.html</LookFor>
  17. <SendTo>~/Articles/News.aspx?id=$1</SendTo>
  18. </RewriterRule>
  19. <RewriterRule>
  20. <!--传两个参数的-->
  21. <LookFor>~/Articles/articles_(.[\d]*)0(.[\w]*).html</LookFor>
  22. <!--(.[\d]*)(.[\w]*).html 或者 ss_,(.[0-9]*),(.[0-9]*)\.html-->
  23. <SendTo><![CDATA[~/Articles/News.aspx?id=$1&sid=$2]]></SendTo>
  24. </RewriterRule>
  25. <RewriterRule>
  26. <!--三个参数-->
  27. <LookFor>~/Articles/articles_(.[\d]*)0(.[\w]*)0(.[\w]*).html</LookFor>
  28. <SendTo><![CDATA[~/Articles/News.aspx?id=$1&sid=$2&n_id=$3]]></SendTo>
  29. </RewriterRule>
  30. </Rules>
  31. </RewriterConfig>
  32. <appSettings>
  33. <add key="ApplicationName" value="测试程序"></add>
  34. <!--是否起用错误日志-->
  35. <add key="ErrorLog" value="0"/>
  36. </appSettings>
  37. <system.web>
  38. <compilation debug="true" targetFramework="4.0" />
  39. <httpHandlers>
  40. <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
  41. <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
  42. </httpHandlers>
  43. </system.web>
  44. <system.webServer>
  45. <validation validateIntegratedModeConfiguration="false"/>
  46. <modules>
  47. <remove name="ScriptModule"/>
  48. <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
  49. </modules>
  50. </system.webServer>
  51. </configuration>
  1.  

<system.webServer>
这一部分的配置,其实是针对IIS 7.5配置的,在网上找的一部分代码是这样配置的,但是偶没有配置出来。直接使用以上代码,就不需要如下配置了。

--------------- --------------- --------------- --------------- --------------- --------------- ---------------

配置IIS7.5你的网站-->IIS中处理程序映射-->
添加脚本映射(路径:*.html 可执行文件%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 名称:任意,比如Hml )
添加通配符脚本映射(路径:* 可执行文件:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 名称:任意,比如All)
托管处理程序映射(路径:* 可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如Html-Integrate)-------->
IIS中 模块-->添加---->(名称:任意 如All 类型:URLRewriter.ModuleRewriter 把 仅针对向asp.net 应用程序或托管处理程序发出请求调用 勾上 ok )
-->ok

--------------- --------------- --------------- --------------- --------------- --------------- --------------- --------------- ---------------

碰到的错误信息提示:

.NET的应用程序池为经典时为报以下异常。

HTTP 错误 500.21 - Internal Server Error
处理程序“SimpleHandlerFactory-ISAPI-4.0_32bit”在其模块列表中有一个错误模块“IsapiModule”

ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置

  1.  

[转载]ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置的更多相关文章

  1. 客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值。

    客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值.     无论是什么的html控件,只要加上了runat="server" ...

  2. Windows-Server-2008、IIS7.0环境下配置伪静态化

    在Windows-Server-2008.IIS7.0环境下配置伪静态化                首先,是IIS7.0的配置,由于Windows Server 2008操作系统默认的IIS版本为 ...

  3. asp.net core 2.0中的配置(1)---Configuration

    配置就是一个装配数据字典的过程,一个字典也就是一个键值对,所以从配置就是键值对. 在asp.net core中关于配置是由四个基本的类型来支撑的,是①IConfigurationSource②ICon ...

  4. ASP.Net上传大文件解决方案之IIS7.0下的配置

    开源的Brettle.Web.NeatUpload.在公司IIS6.0使用正常,但是在Windows 2008 server IIS7上使用不正常.在网上看到一个解决办法但是没有效果 IIS 7 默认 ...

  5. ASP.NET上传大文件报错,IIS7.0

    打开你系统盘(我是C盘),找到C:\Windows\System32\inetsrv\config\schema目录,该目录下有一个IIS_schema.xml,右击打开文件,Ctrl+F,然后输入& ...

  6. asp.net服务器页面处理过程

    一.静态页面.动态页面区别 静态页面是服务端直接从硬盘里面读取然后发回去,动态页面就要创建这个页面类的对象,调用对象的方法,方法里面什么就发回什么.浏览器请求asp.net页面实际是请求asp.net ...

  7. IIS7.0/7.5 MVC3 实现伪静态

    routes.MapRoute(            "Default",            "{controller}/{action}.html/{id}&qu ...

  8. [Asp.net MVC]页面伪静态实现

    摘要 从页面Url及页面名称上看,你会发现静态页面和伪静态是一样的.伪静态的页面后缀可能是html,htm,cshtml等,只是改变了url的表现形式,实际上还是动态的页面.在SEO方面,伪静态和静态 ...

  9. [转载]ASP.NET页面之间传递值的几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

随机推荐

  1. TI单节电量计基本介绍及常见问题解答

    电量计(gas gauge /fuel gauge)是用来计量显示电池电量,通常包括mAh剩余容量(RM),满充容量(FCC),百分比容量(SOC),电压,电流,温度等,部分电量计还包含放空,充满时间 ...

  2. usermod命令/用户密码管理/mkpasswd命令

    3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令 usermod命令 设置用户uid: usermod  -u  111 username 设置用户gid usermod ...

  3. SVN自动生成版本号信息

        在平时的多版本开发过程中,需要通过版本号来定位到源码版本,便于定位问题.常规工程实践是设置版本号为X.Y.Z.N,一般X表示主版本号,Y表示子版本号,我一般将Z设为0,N为本次提交的SVN版本 ...

  4. spring mvc 框架URL接收中文参数的乱码解决方案

    后台可能就会出现乱码,具体解决方案如下: 一. 配置tomcat目录下的service.xml文件 tomcat7/conf/server.xml 给该行代码加上 URIEncoding=" ...

  5. ffmpeg把ts文件转m3u8并切片

    Linux_x86_64流媒体环境:nginx + EasyDarwin-master 客户端播放器:VLC media player 下载windows下的ffmepg二进制版本,请进网站http: ...

  6. Java学习之——Java Serializable

    1.什么是Serializable接口? http://en.wikipedia.org/wiki/Serialization Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个 ...

  7. 在window的cmd窗口下运行linux命令

    之前看很多视频老师都是用Linux命令操作命令框,感觉很方便,自己在cmd窗口试了一下,所有这些命令都提示不是内部或外部命令,后来发现了windows还有一个powershell命令行工具,用起来似乎 ...

  8. VBscript实现开机自动启动,自动复制原件后启动

    set fso = createobject("scripting.filesystemobject") set ws = createobject("wscript.s ...

  9. 解决parseSdkContent failed java.lang.NullPointerException错误

    今天我的eclipse崩溃了,报“parseSdkContent failed java.lang.NullPointerException”的错误. 所有的安卓项目都不正常,创建项目就会报 java ...

  10. geoserver 地图性能和缓存

    1.什么是GeoWebCache GeoWebCache是地图缓存软件公司成员开发的一个基于java的开源项目.和其他的缓存系统相似,它作为一个客户端和地图服务的代理.它可以单独部署,适用于任何基于W ...