aspx中伪静态的实现

从提高网站的访问速度和搜索引擎的收录考虑,有时候我们需要把动态的aspx转换为静态的html,这种转换分为两种:伪静态和真静态!这两种各有优劣,今天先不考虑这个,讲讲伪静态是怎么完成的

首先我们要有Mircosoft URLRewriter.dll 如果没有就从网上下载,然后将他们考到项目的bin下面

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  </configSections>

  <RewriterConfig>
        <Rules>
            <RewriterRule>
                <LookFor>~/web/new/type/(.[0-9]*)\.html</LookFor>
        <SendTo>~/web/new.aspx?id=$1</SendTo>
            </RewriterRule>

<RewriterRule>
                <LookFor>~/web/new/News/(\d+)\.html</LookFor>
        <SendTo>~/web/new.aspx?id=$2</SendTo>
            </RewriterRule>
      <RewriterRule>
        <LookFor>~/web/index.html</LookFor>
        <SendTo>~/web/index.aspx</SendTo>
      </RewriterRule>
        </Rules>
    </RewriterConfig>
    <system.web>
    <httpHandlers>
      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
      <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

      <add verb="*" path="*.shtml" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    </httpHandlers>
        <compilation debug="true"/></system.web>
</configuration>

 

如果是根目录下面的页面在页面中可以写成Default.html

而在配置文件中就要写成

<RewriterRule>
                <LookFor>~/Default.html</LookFor>
        <SendTo>~/Default.aspx</SendTo>
            </RewriterRule>

蓝色的部门很重要,可以根据需要添加修改;

 

如果是根目录下面的页面在页面中可以写成Default.html

而在配置文件中就要写成

<RewriterRule>
                <LookFor>~/Default.html</LookFor>
        <SendTo>~/Default.aspx</SendTo>
            </RewriterRule>

蓝色的部门很重要,可以根据需要添加修改;

 

如带参数的时候ZbServiceinfo.aspx?infoid=1

配置文件:数字:<LookFor>~/ZbServiceinfo(\d+)\_(\d+)\.htm</LookFor>
          <SendTo>~/ZbServiceinfo.aspx?infoid=$1&amp;page=$2</SendTo>

字符串:<LookFor>~/ZbServiceinfo_(.*).htm</LookFor>
          <SendTo>~/ZbServiceinfo.aspx?infoid=$1</SendTo>

&amp:表示多个参数时的连接符号

网页中设置:ZbServiceinfo+参数+".htm"

 

发布到IIS是时候,也要做相关处理

右键点我的电脑-->管理-->展开'服务和应用程序'-->internet信息服务-->找到你共享的目录-->右键点击属性 -->点击'配置'-->映射下面 -->找到.aspx的可执行文件路径复制路径-->添加-->粘贴路径-->扩展名为".html"-->然后把检查文件是否存在的勾去掉这样就可以了,如果遇到“确定”按钮失效,可以用键盘事件编辑路径即可解决

另外一种方法就是添加urlrewritingnet.urlrewritingnet.dll

web.config:

<configSections>
  <section name="urlrewritingnet" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
 </configSections>
 <urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" xmlns="
http://www.urlrewriting.net/schemas/config/2006/07">
  <rewrites>
   <add name="Rule1" virtualUrl="^~/(.*)/Default_(\d+)_(\d+).html" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/$1/Default.aspx?type=$2&amp;page=$3" ignoreCase="true"/>
   <add name="Rule2" virtualUrl="^~/(.*)Default.html" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/$1Default.aspx" ignoreCase="true"/>
   <add name="Rule3" virtualUrl="^~/chanpin/chanpin_(\d+)_(\d+).html" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/chanpin/chanpin.aspx?type=$1&amp;id=$2" ignoreCase="true"/>
    </rewrites>
  </urlrewritingnet>

 <httpModules>
   <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
  </httpModules>

网上的实例代码很多,可以看看..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容:http://blog.csdn.net/spritenet/article/details/8725848 Aspx伪静态也是个老生常谈的问题,.net平台做网站是非常方便,导致一些会用不会用.net的菜鸟们都用来做网站,其实我倒是觉得.net的优势是在管理系统上,适合团队开发,网站只是他很小的一个功能,但是谁让他好用呢。 扯回来,虽然百度seo说“url是动态还是静态对搜索引擎没有影响(from《百度搜索引擎优化指南2.0[官方版]》第十三页 图一)”,但是实际呢?如图二,图二是“百度统计 seo建议”里面的提示,因此aspx页面的静态化是很有必要的,至少也得是伪静态。 图一 图二 我现在这个业余码农以前由于管理系统做多了从来也不考虑静态化的问题,但是现在要负责一批商业网站的seo事务,伪静态就成了工作重点。 以前没有系统的研究过伪静态,这次用了几天时间好好的研究了一下,间也走了一些弯道,现在记录下来,希望更多的菜鸟们能好好利用.net这个平台。 知识点准备: 1.至少要需要对iis6有所了解,最好是有win2003上调试iis的经验,不推荐xp下调试iis 2.知道ISAPI_Rewrite是什么,有什么作用,ISAPI_Rewrite(硬盘版)下载地址:正在上传。。。。。。。。。 3.明白伪静态的含义,伪静态的作用是当你点击www.xx.com/news-1.html的时候能显示www.xx.com/news.aspx?id=1这个页面的内容,而不是当你访问www.xx.com/news.aspx?id=1的时候地址栏的网址自动变成www.xx.com/news-1.html,这个要搞清楚,也就是说你网站上的链接都要以html结尾,不能再以aspx?id=1的形式出现,不知道我说的明不明白,我昨天就这个问题给他们解释了半天...... 独立服务器设置 Win2003必备的环境装好后,打开iis 在【默认网站】上右键属性,找到【ISAPI筛选器】选项卡 点击【添加】 点击【浏览】找到ISAPI_Rewrite所在的地址,选择ISAPI_Rewrite.dll,确定 网站浏览后优先级自动会调整到【高】,确定 找到ISAPI_Rewrite所在的地址,打开httpd.conf 写入转发规则,我觉得懂点正则表达式的同学应该都明白吧 然后预览网站 其实就这么几步,不用在web.config配置什么 大家可以看到我的地址是localhost/hj/News_1_1.html,但实际上页面的实际地址是localhost/hj/News.aspx?id=1&Page=1 ,在转发规则也表明RewriteRule ^(.*)/News_([0-9]+)_([0-9]+)\.html$ $1/News.aspx?id=$2&Page=$3 如果有多个参数表达式可以自己写规则就行了。 以上就是独立独立服务上iis的配置。 虚拟主机设置 毕竟有独立服务器的情况还是少数,大部分网站还是用的虚拟主机,下面说一下虚拟主机的伪静态方法。 我用的虚拟主机是“西部数码”的,在管理平台上有【ISAPI筛选器】功能 打开【ISAPI筛选器】 点击【开启自定义的URL静态化支持】 返回到【文件管理】 找到others/discuz/httpd.conf文件,打开修改转发规则

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值