重写规则如下:
<rewrite url="^/chihe/360-p([0-9]+).html$" to="/chihe/index.aspx?pid=$1" processing="stop"></rewrite>
这样的话 在iis7添加 脚本映射 *.html能访问 重写的aspx文件
但 本身的html文件不能访问了,提示这个错误
““/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
未能执行 URL。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 未能执行 URL。”
[color=#FF0000]重写是用rewriter.dll写的 ,在iis6下就能成功[/color]
9 个解决方案
#1
本身不能用嘛,webconfig需要加一句这个
<compilation>
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<httpHandlers>
<add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
<compilation>
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<httpHandlers>
<add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
#2
<httpHandlers>
<add verb="*" path="*.html" type="System.Web.StaticFileHandler" />
</httpHandlers>
<add verb="*" path="*.html" type="System.Web.StaticFileHandler" />
</httpHandlers>
#4
IIS 7采用与asp.net整合/集成的模式.
当你把.html的url都交与asp.net处理时(IIS不再插手了),伪.html可以对应aspx,就可以执行,否则,asp.net对真正的.html(但不符合重写规的)就不知道如何处理了,导致这次请求没有作任何处理.
IIS6.0中 IIS与asp.net是两级处理模式.先由IIS筛选,
符合重写规则的交与asp.net处理了.不符合的规的.html,自然仍由IIS处理.
当你把.html的url都交与asp.net处理时(IIS不再插手了),伪.html可以对应aspx,就可以执行,否则,asp.net对真正的.html(但不符合重写规的)就不知道如何处理了,导致这次请求没有作任何处理.
IIS6.0中 IIS与asp.net是两级处理模式.先由IIS筛选,
符合重写规则的交与asp.net处理了.不符合的规的.html,自然仍由IIS处理.
#5
这样添加了能成功,但是访问出来是乱码,不知道咋个回事
#6
你好,IIS7有两种模式,但在我上面那样配置重写只在经典模式下才能运行正常,在集成模式下就不能。
#7
恩,楼上的说得对啊!几楼的对啊?
#8
膜拜2楼。。。解决了真实html文件被
<add verb="*" path="/*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
后出现乱码的问题
<add verb="*" path="/*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
后出现乱码的问题
#9
膜拜2楼
#1
本身不能用嘛,webconfig需要加一句这个
<compilation>
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<httpHandlers>
<add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
<compilation>
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<httpHandlers>
<add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
#2
<httpHandlers>
<add verb="*" path="*.html" type="System.Web.StaticFileHandler" />
</httpHandlers>
<add verb="*" path="*.html" type="System.Web.StaticFileHandler" />
</httpHandlers>
#3
#4
IIS 7采用与asp.net整合/集成的模式.
当你把.html的url都交与asp.net处理时(IIS不再插手了),伪.html可以对应aspx,就可以执行,否则,asp.net对真正的.html(但不符合重写规的)就不知道如何处理了,导致这次请求没有作任何处理.
IIS6.0中 IIS与asp.net是两级处理模式.先由IIS筛选,
符合重写规则的交与asp.net处理了.不符合的规的.html,自然仍由IIS处理.
当你把.html的url都交与asp.net处理时(IIS不再插手了),伪.html可以对应aspx,就可以执行,否则,asp.net对真正的.html(但不符合重写规的)就不知道如何处理了,导致这次请求没有作任何处理.
IIS6.0中 IIS与asp.net是两级处理模式.先由IIS筛选,
符合重写规则的交与asp.net处理了.不符合的规的.html,自然仍由IIS处理.
#5
这样添加了能成功,但是访问出来是乱码,不知道咋个回事
#6
你好,IIS7有两种模式,但在我上面那样配置重写只在经典模式下才能运行正常,在集成模式下就不能。
#7
恩,楼上的说得对啊!几楼的对啊?
#8
膜拜2楼。。。解决了真实html文件被
<add verb="*" path="/*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
后出现乱码的问题
<add verb="*" path="/*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
后出现乱码的问题
#9
膜拜2楼