1、下载URLRewrite.dll 放在bin目录下
2、修改web.config
。configSections节点增加:
<configSections>
<section name="RewriterConfig"
type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
。 <configuration> 下增加重写规则
<RewriterConfig>
<Rules>
<RewriterRule><LookFor>/ld/(\d+)</LookFor><SendTo><![CDATA[/ld/Default.aspx?leader=$1]]></SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
。 httpHandlers节点增加
<httpHandlers>
<add verb="*" path="*.htm"
type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*"
type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
path 指定了从重写后扩张名,如果没有扩张名就用*;
3、IIS设置
点站点文件夹右键-》属性-》虚拟目录=》配置,映射添加,输入可执行文件 名:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,
扩张名可以是htm或者其他。
如果要支持目录样式的重写(比如default.aspx?id=6 重写为/6/),你应该在同一个位置点“插入”,让后输入“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”,确认文件是否存在,点掉(让asp.net 接管所有请求)。
4、如果您的图片和样式、脚本、和重写的是同一级目录或者是重写目录的子目录,而且你又需要支持目录式的重写,访问图片等文件的时候可能会出现:“
没有为扩展名“.jpg”注册的生成提供程序
”,一般的解决办法是在。compilation 节点添加
<buildProviders>
<add extension=".jpg"
type="System.Web.Compilation.PageBuildProvider" />
</buildProviders>
注意如果你是不想程序截取html,htm静态文件的访问,这样做是没有问题,如果是对应的css和jpg,gif就会提示找不到文件或者直接输出二进制内容。
解决办法:强烈建议你把对应的images 和 scripts (假设你的图片和脚本保存在这个文件夹)文件夹在iis上点右键-》属性,在目录选项卡点“创建”,把这些文件夹创建为一个虚拟目录(应用程序),然后点配置,把url重写的脚本映射去掉,ok,你图片和样式回来了。