asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

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


发布日期:2020年07月24日
 
ASP.NET用URLRewriter.dll实现伪静态
<configSections>

<!用于指定配置节RewriterConfig的处理程序类的名称为URLRewriterConfigRewriterConfigSerializerSectionHandler该类存在于bin目录下的URLRewriter dll文件中>

<section name=RewriterConfig type=URLRewriterConfigRewriterConfigSerializerSectionHandler URLRewriter />

</configSections>

<httpModules>

<add type=URLRewriterModuleRewriter URLRewriter name=ModuleRewriter />

</httpModules>

<RewriterConfig>

<Rules>

<RewriterRule>

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

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

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

例如用户输入 hostname/daspx服务器会把他重写为x?id=换句话说用户输入x实际访问的是

x?id=这样就起到了隐藏真实文件名并便于用户记忆的作用>

<SendTo>~/defaultaspx?id=$</SendTo>

</RewriterRule>

<RewriterRule>

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

<SendTo>~/news_nyaspx?newsId=$</SendTo>

</RewriterRule>

<RewriterRule>

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

<SendTo>~/newsaspx?newsTypeId=$&amp;newsWhere=$</SendTo>

</RewriterRule>

<RewriterRule>

<LookFor>~/l</LookFor>

<SendTo>~/newsaspx</SendTo>

</RewriterRule>

</Rules>

</RewriterConfig>

用到AspNetPager分页控件的页面可以将AspNetPager的 UrlPaging设为false 变相的解决分页控件显示aspx页面问题也可以向访问页面这样一步一步配置实现html的伪静态

对于两个参数的规则 & 符号要写成 &amp; 用的时候第二个参数如果用不到空着即可但是必须写_ 如l

IIS 配置伪静态

httpHandler实现Net无后缀名Web访问

)首先新建一个应用程序池名称任意比如nettest托管管道模式先暂时设置为集成模式等下面的一系列设置完成之后再设置成经典模式

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

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

添加脚本映射:请求路径l 可执行文件选择 C:\Windows\MicrosoftNET\Framework\v\aspnet_isapidll 如果是则为C:\Windows\MicrosoftNET\Framework\v\aspnet_isapidll名称随意

添加通配符脚本映射:请求路径 * 可执行文件为C:\Windows\MicrosoftNET\Framework\v\aspnet_isapidll名称随意

添加托管处理程序:请求路径 * 可执行文件SystemWebUIPageHandlerFactory名称随意

)打开站点切换到功能试图找到 服务器组件>模块双击之后在打开窗口右侧的操作栏目中点击添加托管模块类型

URLRewriterModuleRewriter并且把仅针对向 应用程序或托管处理程序发出请求调用 选中

)最后找到我们第一步建立的应用程序池nettest将托管管道模式设置为经典模式

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

IIS 配置伪静态

IIS配置网站>属性>目录>配置(G)…>映射>应用程序扩展>添加

可执行文件c:windowsframeworkvaspnet_isapidll

扩展名l

动作限制为 GETHEADPOSTDEBUG

脚本引擎选中

确认文件是否存在不选

上一篇:ASP.NET中实时图表的实现

下一篇:asp.net 里include UTF8 垃圾问题