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

原创 2012年03月08日 14:59:22

 ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置

最近在写一个CMS的内容管理系统,需要用到一个伪静态方面的方法,在网上找了一下这方面的资料,现将这方面的资源记录一下。

本机环境:

Window server 2008 R2 Enterprise 操作系统+SQL Server 2008 R2 Enterprise企业版数据+Visual Studio 2010 SP1

 

普及一下伪静态方面的知识,

1、伪静态简单一点儿来说,其实就是重写了URL,最大的好处便于搜索引擎抓取,因为搜索引擎喜欢静态网站,类似于.html或.htm后缀的网页。

2、使用静态文件会占用大量的硬盘空间,并且会加重磁盘IO的负核,使用伪静态,一来可以节省硬盘空间,减少一部分的磁盘IO的负核,二来,在网站的进化过程中可能会有一些业务上的调整,也便于以后网站升级进化。

3、伪静态缺点,则会加重CPU的负担。

 

好了,我只了解这一部分。为了SEO还是使用部分伪静态吧。

使用的两个DLL

URLRewriter.dll
ActionlessForm.dll

下载地址:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi

该安装包中包含了该DLL的源代码,喜欢研究的朋友可以直接研究代码。

同时,该安装包还包含一个示例,木有研究,只是打开看了看web.config配置信息,现将配置伪静态部分贴到下面。

使用以下配置,我发现当页面中一个APS.NET的button按钮提交不了。介个目前还木有研究,需要继续深入的研究。

<?xml version="1.0" encoding="utf-8"?>

<!--
  有关如何配置 ASP.NET 应用程序的详细消息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <configSections>
    <section name="RewriterConfig" requirePermission="false" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  </configSections>
  <RewriterConfig>
    <Rules>
      <RewriterRule>
        <!--一个参数-->
        <LookFor>~/Articles/articles_(.[\d]*)\.html</LookFor>
        <SendTo>~/Articles/News.aspx?id=$1</SendTo>
      </RewriterRule>
      <RewriterRule>
        <!--传两个参数的-->
        <LookFor>~/Articles/articles_(.[\d]*)0(.[\w]*).html</LookFor>
        <!--(.[\d]*)(.[\w]*).html  或者 ss_,(.[0-9]*),(.[0-9]*)\.html-->
        <SendTo><![CDATA[~/Articles/News.aspx?id=$1&sid=$2]]></SendTo>
      </RewriterRule>
      <RewriterRule>
        <!--三个参数-->
        <LookFor>~/Articles/articles_(.[\d]*)0(.[\w]*)0(.[\w]*).html</LookFor>
        <SendTo><![CDATA[~/Articles/News.aspx?id=$1&sid=$2&n_id=$3]]></SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>
  <appSettings>
    <add key="ApplicationName" value="测试程序"></add>
    <!--是否起用错误日志-->
    <add key="ErrorLog" value="0"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpHandlers>
      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
      <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    </httpHandlers>    
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <remove name="ScriptModule"/>
      <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
    </modules>
  </system.webServer>
</configuration>






<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中的配置

相关文章推荐

ASP.NET 实现伪静态网页方法

方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服...
  • jxqvip
  • jxqvip
  • 2011年08月23日 10:51
  • 25830

asp.net利用自定义Http处理程序实现URL伪静态之初探

之前在做过的一个项目中,也实现了伪静态URL页面的办法,不过那是利用URLRewriter.dll并需要通过配置IIS才得以实现,而且通过这个方法实现还有不少要求,但在实际过程中,服务器我们是买别人家...

将asp.net页面弄成伪静态页面

在Web.config中写:                     ~/index.html             //索要更改的页面         ~/index.as...

URL优化之IIS7如何开启伪静态

iis7跟IIS6开启伪静态重写的方式不一样,iis6是在网站属性里面的ISAPI筛选器里面添加,但是iis7添加伪静态重写,需要下载一个url重写插件。 II7/7.5用的是web.confi...
  • lcradio
  • lcradio
  • 2016年11月14日 17:15
  • 1548

要在asp.net处理静态资源时,Web.Config配置方式

上面的便子是控件htm静态资源 如果要控制其他的,请把htm改成其他的文件的类型即可...
  • lrxin
  • lrxin
  • 2015年02月12日 11:37
  • 1133

C#之伪静态实现

所谓的伪静态就是把访问的网址伪装成其他的自己指定的网址的方式。 步骤如下: 1、首先下载一个URLRewriter.dll(这玩意随便百度一下都可以查到的,文件大小20k左右) 然后在你所要...

asp.net利用自定义Http处理程序实现URL伪静态之初探

之前在做过的一个项目中,也实现了伪静态URL页面的办法,不过那是利用URLRewriter.dll并需要通过配置IIS才得以实现,而且通过这个方法实现还有不少要求,但在实际过程中,服务器我们是买别人家...

ASP.NET 实现伪静态网页方法

方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服...
  • jxqvip
  • jxqvip
  • 2011年08月23日 10:51
  • 25830

.NET网站IIS7.0伪静态配置

  • 2014年06月14日 16:35
  • 766B
  • 下载

WIN2008系统的IIS7.0配置REWRITE伪静态环境(转)

WIN2008作为服务器,上前已经是非常普遍了, 对于用惯了WIN2003下IIS6.0的人来说, 要在IIS7.0下设置IIS REWRITE这个组件,似乎没有那么顺手IISREWRITE的组件...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置
举报原因:
原因补充:

(最多只允许输入30个字)