ASP.Net下用 URLRewriter 进行重写不起作用
参考《在 ASP.NET 中执行 URL 重写(RewritePath)》进行URL重写,写出来的代码没起作用……
重写页面举例:
首页:http://127.0.0.1/default.aspx
详细页面:http://127.0.0.1/item.aspx?guid=7C8027EA-A4ED-467c-B17E-1B51CE74AF57
类别页面:http://127.0.0.1/category.aspx?id=3
1、已将 URLRewriter.dll 拷贝到 bin 文件夹下。
2、修改了 web.config 文件,具体如下:
<!-- UrlRewriter for .net2.0 配置第一步(共三步) --><configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
<!-- UrlRewriter for .net2.0 配置第二步(共三步) -->
<!-- 地址重写规则 -->
<!-- 奇怪:这里配置的重写规则不起作用?????? --><RewriterConfig>
<Rules>
<!-- 首页重写规则 -->
<RewriterRule>
<LookFor>~/default</LookFor>
<SendTo>~/default.aspx</SendTo>
</RewriterRule>
<!-- 详细页面重写规则 -->
<RewriterRule>
<LookFor>~/([a-zA-Z0-9]*)\.aspx</LookFor>
<SendTo>~/item.aspx?guid=$1</SendTo>
</RewriterRule>
<!-- 类别页面重写规则 -->
<RewriterRule>
<LookFor>~/category/(\d{1})</LookFor>
<SendTo>~/category.aspx?id=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<!-- UrlRewriter for .net2.0 配置第三步(共三步) -->
<!-- 教程说可以使用 HTTP 模块或者 HTTP 处理程序来执行 URL 重写,这里使用了HTTP 模块进行处理 -->
<!--
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
--><httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>
------解决方案--------------------
<httpHandlers>
中添加
<add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
------解决方案--------------------使用现成控件 一般都是配置的问题
------解决方案--------------------
还要再设置一下IIS:
打开IIS,主目录-〉配置-〉映射-〉点击“插入”通配符应用程序映射-〉选择“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”,然后把勾选去掉(一定要去掉),然后确定。
------解决方案--------------------
------解决方案--------------------