我是实用微软提供的两个dll文件实现的伪静态:引用添加过了,配置也配置好了,但是就是没有效果,不知道怎么回事,由于是第一次使用,找不出问题。下面是相关配置:
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/index.aspx</LookFor>
<SendTo>~/default.aspx</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
HttpHandlers中的配置:
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
HttpModules中的配置:
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
有哪位可以告诉我一下,谢谢!
<LookFor>~/(.[0-9]*)\.html</LookFor> //重写规则
<SendTo>~/Show.aspx?id=$1</SendTo> //实际地址
既然你是伪静态,写上面的规则并加上相应的页面试试。
记得要把HTML的解析用 asp.net 的ISAPI来解析。
在IIS\你的站点\属性\主目录\配置\映谢 加入一个和 aspx 页面的配置相同的扩展名项。注意“确认文件是否存在”不要勾选,否则会出现找不到文件。
<!--地址重写规则-->
<rewriter>
<rewrite url="~/(.*)_(\d+).html" to="~/$1.aspx?page=$2" processing="stop"/>
<rewrite url="~/(.*).html" to="~/$1.aspx" processing="stop"/>
</rewriter>
一般最好用htm,html的话有时候会和网站的 一些本来就是静态的页面产生冲突。
因为设置之后,htm会映射到asp.net的程序集。