aspx转化为html(伪静态)

运行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到某一页面。

实例:
Intelligencia.UrlRewriter.dll aspx重写为html实例
 
1、http://urlrewriter.net/   下载解压缩后把Intelligencia.UrlRewriter.dll 文件添加引用到web工程里。

2.web.config配置:

<configSections>
   <!--UrlRewriter-->
   <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>
<system.web>
   <!--UrlRewriter-->
   <httpModules>
    <add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />
         </httpModules>
</system.web>
</system.web>
<!--UrlRewriter-->
<rewriter>
   <rewrite url="~/test_([a-zA-Z]+).html$" to="~/Show.aspx?Code=$1" processing="stop" />
</rewriter>
其中: <rewrite url="~/test_([a-zA-Z]+).html$" to="~/Show.aspx?Code=$1" processing="stop" />
若果code= abc的话,最终显示的结果为"虚拟目录名称/test_abc.html" 。如果吧.html替换成 .aspx那就是"虚拟目录名称/test_abc.aspx"

3.IIS配置:

如果是用"虚拟目录名称/test_abc.aspx" 的话,不需要配置IIS. 使用了"虚拟目录名称/test_abc.html" 配置IIS的方法如下:
http://urlrewriter.net/index.php/support/installation/windows-server-2003/ 里面的图9不准确,准确的为:
还有第八步中的”untick Verify that file exists.“要看仔细。否则重写HTML就无效。

4:备注

不要在"应用程序扩展"里“添加" .html的映射,否则正常的html将无法访问。
5.在vs2005中,传多个参数应该加&amp;在vs2003中,只用分号就好了
eg.
<RewriterConfig>
    <Rules>
      <RewriterRule>
        <!--CreditNews BackGround update-->
        <LookFor>~NewsClsManage-(\d*)-(\d*).html</LookFor>
        <SendTo>~NewsClsManage.aspx?ClassID=$1&amp;flag=$2</SendTo>
      </RewriterRule>
    </Rules>
</RewriterConfig>

转载于:https://www.cnblogs.com/KingStar/archive/2011/04/11/2012007.html

  • 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、付费专栏及课程。

余额充值