ASP.NET实现伪静态技术(Url Rewriting)

ASP.NET实现伪静态技术

使用环境:Windows XP Professional
开发平台:NET2.0,VS2005
实现功能:实现了伪静态技术的实现,可以实现诸如Show.aspxMyID=1成功转换为1.html的转换,分享一下:

一、引言:

     伪静态技术可以实现诸如Show.aspxMyID=1成功转换为1.html的转换。 我们为什么不直接使用Show.aspx?MyID=1,这种访问方式而非要使用1.html这样的访问方式呢。

      Asp.net伪静态的好处:运行PHP,ASP.NET,JSP,ColdFusion的网页服务器(如IIS,Apache),大多可以用URL Rewriting来实现隐藏或改变拓展名。大网站,象腾讯,百度(用PHP),都在用URL Rewriting的方法来把拓展名隐藏或改变。好处有几点:

1. 搜索引擎比较喜欢.html,.htm的(与.jsp,.php,.aspx,.cff相比),因为.html, .htm是静态的,更容易让引擎了解你网页的内容。而动态网页的内容是根据用户,来输出不同的内容,不容易让引擎吸收具体HTML内容。

2. 如果不用URL Rewriting将拓展名隐藏或改成.html,那么假如这个网站要换个技术或把动态页面换成静态,则需要寻找所有含有拓展名的连接,把连接所含URL 进行拓展名修改(如从JSP换到PHP技术,则要寻找所有含有.jsp的页面,并把所有含.jsp的URL改成.php,费时费力)。URL Rewriting正好避免了这点,因为好的URL是能做到“不变应完变”的。

3. 防止某些黑客恶意攻击。有些大网站采用不同的技术开发不同功能的页面。而把拓展名改掉,让黑客无法确认此页面用的技术是什么,从而就无从下手。

4. 方便访问者使用。访问者不是程序员,他们不明白什么是.jsp,.php.aspx,他们只知道URL。所以统一把拓展名拿掉,或者同意把拓展名换为html,htm,有利于用户的使用。用户可以知道现在在你网站的位置,如何通过输入URL到某一页面。

二、详细的实现过程:

        ①:首先要有这个文件URLRewriter.dll,如果没有,本地下载,并将其放到下面的bin目录里面,并且将其引用添加到下面里面;

        ②:下面就是Web.Config文件的配置了,当然,配置过程相当简单:

        1:先添加这个

Code
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<!-- Rules for Blog Content Displayer -->
<RewriterRule>
<LookFor>~/(.[0-9]*)\.html</LookFor>
<SendTo>~/ArticleDetail.aspx?MyID=$1</SendTo>
</RewriterRule>
<!-- Rules for News view -->
<RewriterRule>
<LookFor>~/News_View_(.[0-9]*)\.html</LookFor>
<SendTo>~/News_View.aspx?n_ID=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>

        2:再添加这个

Code
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>

    至此,已成功一大半,上面两个都添加到Web.Config,添加到什么位置看来没必要讲了!   

三、IIS配置

     最后一步:在IIS中找到自己的虚拟目录网站,点属性,然后点配置,然后弹出应用程序配置对话框,选择添加,添加的可执行文件路径为c:\windows \microsoft.net\framework\v2.0.50727\aspnet_isapi.dll,扩展名处填入.html,然后把检查文件是否存在的勾去掉,这样就可以了。

原文地址:https://www.cnblogs.com/hakuci/p/1878599.html