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中Obsolete属性
- ASP.NET常用的代码收集
- asp.net中使用ueditor
- ASP.NET生成静态页面的方法
- ASP.NET中Server对象的用法
- ASP.NET批量下载文件
- ASP.NET将WORD、PDF、PPT转为图片
- ASP.NET文件打包压缩下载
- asp.net自定义分页控件
- ASP.NET URLRewriter伪静态
- ASP.NET中使用CodeDomProvider调用js文件中的js方法
- 开源asp.net(apache下支持asp.net的实现方法)
- asp.net如何实现word文档在线预览
- asp.net网站如何优化
- ASP.NET中XML与DataSet的相互转换
- ASP.NET中() => 的含义
- 这里输入关键词(怎么输入关键词搜索)
- 34岁的舒畅,就这样走到了末路,不知会不会后悔15年前的草率决定(就这样走到了末路)
- 不走心的古装造型 舒畅 毁容式 出演,萧蔷雷出新高度(不走心的古装造型)
- 嘉南传 第22集(嘉南传第22集)
- 哪版孙悟空最萌 黄渤躺萌了(哪版孙悟空最萌)
- 融入小人物的喜怒哀乐,黄渤饰演的角色为什么让人观看时欲罢不能(融入小人物的喜怒哀乐)
热门推荐
- dedecms语法教程(dedecms 获取描述信息限制字数的语法)
- sqlserver怎么显示变量所占字节数(SQL Server中关于基数估计计算预估行数的一些方法探讨)
- mariadb导入数据库命令(MySQL/MariaDB 如何实现数据透视表的示例代码)
- 织梦tag标签怎样添加(DEDECMS织梦模板添加301重定向跳转网址对的代码教程)
- html中的特殊符号编码
- laravelblade界面(laravel5.1框架基础之Blade模板继承简单使用方法分析)
- mysql not exists用法(mysql中EXISTS和IN的使用方法比较)
- pythonlambda详解(Python的条件表达式和lambda表达式实例)
- 如何在sql server中解密视图(关于SQL Server加密与解密的问题)
- word-break、word-wrap、white-space的用法