您的位置:首页 > 编程语言 > ASP

ASP.NET 用 URLRewriter.dll 实现伪静态

2012-05-16 14:17 555 查看

<configSections>
<!--用于指定配置节"RewriterConfig"的处理程序类的名称为”URLRewriter.Config.RewriterConfigSerializerSectionHandler”,该类存在于bin目录下的URLRewriter .dll文件中-->

<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />

</configSections>

<httpModules>

<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

</httpModules>

<RewriterConfig>

<Rules>

<RewriterRule>

<!--表示,用户输入的url,d(\d+)\.aspx是 url中文件名匹配的正则表达式(此处为字母d开头,后面跟一个或多个数字,并以.aspx结尾。用户也可根据自己的需要自行设定)。-->

<LookFor>~/d(\d+)\.aspx</LookFor>

<!--表示当服务器接收到符合上面条件的请求后如何重写url。此处表示访问defalutl.aspx并传入参数id,其值$1将用用户请求的文件名中的第一个数字来表示。

例如用户输入 hostname/d11.aspx,服务器会把他重写为http://hostname/default.aspx?id=11。换句话说用户输入http: //hostname/d11.aspx,实际访问的是

http://hostname/default.aspx?id=11。这样就起到了隐藏真实文件名,并便于用户记忆的作用。-->

<SendTo>~/default.aspx?id=$1</SendTo>

</RewriterRule>

<RewriterRule>

<LookFor>~/news_ny_(.*).html</LookFor>

<SendTo>~/news_ny.aspx?newsId=$1</SendTo>

</RewriterRule>

<RewriterRule>

<LookFor>~/news_(.*)_(.*).html</LookFor>

<SendTo>~/news.aspx?newsTypeId=$1&newsWhere=$2</SendTo>

</RewriterRule>


<RewriterRule>

<LookFor>~/news.html</LookFor>

<SendTo>~/news.aspx</SendTo>

</RewriterRule>

</Rules>

</RewriterConfig>

用到AspNetPager分页控件的页面可以将AspNetPager的 UrlPaging设为false ,变相的解决分页控件显示.aspx页面问题。也可以向访问页面这样,一步一步配置,实现.html的伪静态。
对于两个参数的规则 “&” 符号要写成 “&“ 用的时候第二个参数如果用不到空着即可,但是必须写"_" 如news_xwgg_.html

IIS 7.5 配置伪静态

httpHandler实现.Net无后缀名Web访问
1)首先新建一个应用程序池,名称任意,比如:nettest,托管管道模式先暂时设置为集成模式,等下面的一系列设置完成之后再设置成经典模式;

2)部署好站点,并将此站点的应用程序池设置为nettest;

3)选中站点,切换到功能试图,找到 "服务器组件"-> "处理程序映射",双击之后,在打开窗口右侧的操作栏目下做如下设置:

4)"添加脚本映射":请求路径 .html ,可执行文件选择 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll ,如果是4.0,则为C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,名称随意;

5)"添加通配符脚本映射":请求路径 * ,可执行文件为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,名称随意;

6)"添加托管处理程序":请求路径 * ,可执行文件:System.Web.UI.PageHandlerFactory,名称随意;

7)打开站点切换到功能试图,找到 "服务器组件"->"模块",双击之后,在打开窗口右侧的操作栏目中,点击"添加托管模块",类型
URLRewriter.ModuleRewriter,并且把"仅针对向asp.net 应用程序或托管处理程序发出请求调用" 选中;
8)最后,找到我们第一步建立的应用程序池nettest,将托管管道模式设置为经典模式。

以上完成之后,即可实现IIS 7.5下的伪静态操作。

2003
IIS 配置伪静态
IIS配置:网站->属性->目录->配置(G)...->映射->应用程序扩展->添加

可执行文件:c:"windows"microsoft.net"framework"v2.0.50727"aspnet_isapi.dll

扩展名:.html

动作:限制为 GET,HEAD,POST,DEBUG

脚本引擎:选中

确认文件是否存在:不选
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: