ASP.NET URLRewriter伪静态
ASP.NET URLRewriter伪静态
ASP.NET URLRewriter伪静态使用伪静态的作用
(1)增强URL的友好性,方便用户记忆URL。
(2)提高搜索引擎抓取,很多搜索引擎更看好静态HTML页。
(3)加强安全性,因为隐藏了参数"year"、"month"、"day"、"id",使网站没有那么容易受到攻击。
伪静态实现的基本思路
(1)自定义HttpHandler类,实现IHttpHandler接口
(2)获取用户请求的URL地址信息
(3)定义多个正则表达式规则,匹配URL字符串
(4)重定向真实的URL地址信息
使用微软的URLRewriter.dll实现页面的伪静态
第一步:添加 UrlRewriter.dll 到 bin目录中
第二步:在web.config文件中进行配置
1、先加入一个section节
<configuration>
.......
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
2、然后加入一个模块httpMoudles,为 URL 重写引擎指定配置信息
<system.web>
........
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>
3、加入httpHandlers字节
<system.web>
........
<httpHandlers>
<!--使用URLRewriter.dll -->
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
注意节的位置 <system.web>与<configSections>两个节是平级的,再加入规则
规则的形式为:
<RewriterConfig> <Rules> <RewriterRule> <LookFor>要查找的模式</LookFor> <SendTo>要用来替换模式的字符串</SendTo> </RewriterRule> <RewriterRule> <LookFor>要查找的模式</LookFor> <SendTo>要用来替换模式的字符串</SendTo> </RewriterRule> </Rules> </RewriterConfig>
伪静态规则的备注
每个重写规则均由 <RewriterRule> 元素表达。要搜索的模式由 <LookFor> 元素指定,而要替换所找到的模式的字符串将在 <SentTo> 元素中输入。这些重写规则将从头到尾进行计算。如果发现与某个规则匹配,URL 将被重写,并且对重写规则的搜索将会终止。
在 <LookFor> 元素中指定模式时,请注意,要使用正则表达式来执行匹配和字符串替换。(稍后,我们将介绍一个真实的示例,说明如何使用正则表达式来搜索模式。)由于模式是正则表达式,应确保转义正则表达式中的任何保留字符。(一些正则表达式保留字符包括:.、?、^、$ 及其他。可以通过在前面加反斜杠(如 \.)对这些字符进行转义,以匹配文字句点。)
上面的代码总结
<?xml version="1.0"?>
<configuration>
<!--使用URLRewriter.dll -->
<configSections>
<section name="RewriterConfig" requirePermission="false" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/detail/([0-9]*)/([0-9]*).html</LookFor>
<SendTo>~/admin/detail.aspx?type=$1&id=$2</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<system.web>
<httpHandlers>
<!--使用URLRewriter.dll -->
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
</configuration>
IIS对伪静态的配置
在IIS中找到自己的网站,点属性,然后找主目录中的配置,然后弹出应用程序配置对话框,选择添加,添加的可执行文件路径为c:\windows \microsoft.net\framework\v2.0.50727\aspnet_isapi.dll。
- ASP.NET中使用CodeDomProvider调用js文件中的js方法
- asp.net使用swfupload上传
- ASP.NET文件打包压缩下载
- 2013-12-25
- asp.net文件下载的方法
- ASP.NET cache缓存的用法
- asp.net后台输出js脚本
- asp.net中Session的操作
- ASP.NET中Obsolete属性
- ASP.NET中异常处理的注意事项
- ASP.NET 生成条形码
- ASP.NET的Random随机数
- ASP.NET将WORD、PDF、PPT转为图片
- ASP.NET给图片加文字水印
- ASP.NET使用JavaScriptSerializer实现序列化与反序列化
- asp.net 消息队列
- 大女主 汤唯垂青电视圈,搭档朱亚文出演《大明皇妃孙若微传》(汤唯垂青电视圈)
- 红色代表什么(红色代表什么情感和含义)
- 高中数学题(高中数学题型总结及解题方法)
- 冰岛旅游攻略(冰岛旅游攻略及花费)
- 为什么现在年轻人越来越喜欢买衣服(为什么现在年轻人越来越喜欢买衣服穿)
- 怎么做好SEO(怎么做好seo内容优化)
热门推荐
- 常见的.NET面试题及推荐答案(一)
- 无盘服务器配置要求(云服务器配置怎么选)
- laravel队列是如何触发的(laravel使用Faker数据填充的实现方法)
- eclipse配置python(eclipse创建python项目步骤详解)
- 云服务器用于什么方面(美国云服务器与哪些因素有关?)
- dedecms 自定义字段(dedecms自定义模型提示:Call to a member function GetInnerText的解决方法)
- 织梦网站导航下拉代码(适合企业站的织梦常用标签大全自己整理)
- docker容器与宿主机通信(docker容器与宿主机的数据交互方式总结)
- django路由原理(详解django中url路由配置及渲染方式)
- python支持面向对象的程序设计(Python面向对象程序设计之类的定义与继承简单示例)