您的位置:首页 > 其它

地址重写(伪静态*虚拟静态)的实现

2010-12-09 09:11 113 查看
没办法,只能再写一遍。
最近好多人问我虚拟静态的实现,网上类似的帖子很多,我在这里发帖给大家讲解一下,首先要对大家说的是虚拟静态并不能提高页面访问效率,如果服务器空间大的话,最好还是使用静态文件。虚拟静态只不过是为了亲和搜索引擎!网上主流做法都是使用UrlRewrite.dll.我使用的是Intelligencia.UrlRewriter.dll,附件里有,可以自己下载,然后添加引用到你的项目里

第一步:在web.config里加三个节点
1.在<configSections>里加入

<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>


2.在 <appSettings>的上面加入

<rewriter file="config/rewrite.config"/>

这个节点的意思是地址重写规则所在的物理路径
3..在<httpModules>里加入
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />


第二步:编写地址重写规则,该规则为xml文件,格式如下

<?xml version="1.0" encoding="utf-8" ?>
<rewriteRules>
<rewrite url="/Default.html$" to="Default.aspx" processing="stop" />
</rewriteRules>


我列举出几种常用的规则供大家参考
1..地址参数中带数字的,比如新闻id,类别id

<rewrite url="/NewsCenter/News(/d+)/.html$" to="/NewsCenter/NewsDetail.aspx?newsid=$1"/>


2..地址参数中带字符串的,比如搜索的关键字,注意,这里有两个参数

<rewrite url="/(/w+)/page_(/d+).html" to="/Soft/SoftList.aspx?keyWords=$1&page=$2" processing="stop" />


3.AspNetPager中带页码的(AspNetPager已经实现了虚拟静态的实现)
<rewrite url="/(/d+)/page_(/d+).html" to="/Soft/SoftList.aspx?class=$1&page=$2" processing="stop" />


第三步:配置IIS
打开IIS=》网站=》属性=》主目录=》最下面的配置 ,然后点击添加按钮

注意:上面的可执行文件的路径可以复制扩展名里已经有的.aspx的,这个步骤的意义在于,当地址栏里出现.html扩展名的文件时,就用aspx的解析程序去解析它,因为我们的文件本就是.aspx的

至此,地址重写就完成了,还有什么不懂得可直接回复

本文来自: 南京学生网 www.njxsw.com ※ 详情>> http://www.njxsw.com/thread-16-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: