.Net URL 重写技术
我现在有个问题就是我在使用 VS2005 的时候想实现 URL 重写,但当我使用微软的组件(URLRewriter.dll)时候却报出未能找到某某元素的错误
消息2未能找到元素“section”的架构信息。E:\BuildURLReWrite\Web.config113E:\BuildURLReWrite\
消息3未能找到属性“name”的架构信息。E:\BuildURLReWrite\Web.config1111E:\BuildURLReWrite\
消息4未能找到属性“type”的架构信息。E:\BuildURLReWrite\Web.config1133E:\BuildURLReWrite\
消息5未能找到元素“httpHandlers”的架构信息。E:\BuildURLReWrite\Web.config453E:\BuildURLReWrite\
等等
请问应该在Web.Config中如何设置
[解决办法]
将urlRewriter.dll复制到bin目录下,然后参照以下web.config文件配置
<?xml version="1.0"?>
<configuration>
<!--这里要加入一个configSections节-->
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<!--这里要加入一个RewriterConfig用来配置规则-->
<RewriterConfig>
<Rules>
<RewriterRule>
<!--匹配guid参数-->
<LookFor>~/([A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12})\/Class.aspx</LookFor>
<SendTo>~/Class/Default.aspx?id=$1</SendTo>
<!--即访问类似于~/9e808623-f0f9-49c4-86f2-9891015d405b/Class.aspx的页面将发往~/Class/Default.aspx?id=9e808623-f0f9-49c4-86f2-9891015d405b-->
</RewriterRule>
</Rules>
</RewriterConfig>
<appSettings/>
<connectionStrings/>
<system.web>
<httpHandlers>
<!--这里加入urlRewriter.dll要处理的后缀文件-->
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
<compilation debug="true"/>
<authentication mode="Windows"/>
</system.web>
</configuration>
[解决办法]
<configuration>
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/intro.html</LookFor>
<SendTo>~/intro.aspx</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
.......
<system.web>
<httpHandlers>
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
</httpHandlers>
.....
</system.web>
</configuration>