首页 新闻 会员 周边 捐助

关于.net中urlrewrite重写问题探索,一个最近遇到的问题,与大家分享!

0
悬赏园豆:40 [已解决问题] 解决于 2015-07-01 14:29

关于urlrewrite重写,我想很多人应该都接触过吧,一般为了SEO友好,使用的比较多。

这几天遇到一个问题,百度谷歌查了很久,还是没有找到合适的解决方案,所以只能来此请教各位园友!

如下面的原始URL

http://www.abc.com/search/result.aspx?Keyword=.net

意图重写成:

<add name="Rewrite001" virtualUrl="^/kw-(.*)/" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Result.aspx?Keyword=$1" ignoreCase="true" />

 

该规则对于正常的关键词输入均可以重写成功,但是如果关键字带了部分特殊字符,如上面提到的.,等则在服务器上不可以重写成功,报404.

以上规则在本地开发环境windows7+iis7中没有任何问题,重写后的URL

http://dev.abc.com/kw-.net/ 可以正常访问。

 

但是更新至正式环境后 服务器环境:windows2003 + iis6 就不可以了。经在windows2003 + iis的开发环境中测试。如果域名放在iis上就无法访问,如果是以localhost:直接浏览形式则可以访问,http://localhost:xxx/kw-.net/

 

请问各位园友是不是需要在iis6上特殊设置一些什么东西来确保特殊字符.等关键字也正常纳入重写规则的范围呢?

 

深表谢意!

流年岁月里的主页 流年岁月里 | 初学一级 | 园豆:16
提问于:2014-06-23 17:35
< >
分享
最佳答案
0

看下 IIS的 HandlerMappings,添加个mapping可以搞定, 参照内置的 *.cshtml 的 handler设置,把path相应的改下

收获园豆:40
._ | 菜鸟二级 |园豆:297 | 2014-06-25 19:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册