http://127.0.0.1/offerlist/
我想通过UrlRewriter.net映射到http://127.0.0.1/offer.html
所以我在web.config里面配置为<RewriterRule>
<LookFor>~/offerlist/</LookFor>
<SendTo>~/offer.html</SendTo>
</RewriterRule>
可是,我在实际页面里面请求http://127.0.0.1/offerlist/的时候,还是有404错误。我也配置了iis的映射了,
请问的是:这个用UrlRewriter.net实现,还要什么配置吗?

解决方案 »

  1.   

    可以这么配置么?
    好像直接是设置首页就可以了吧,在iis里加入offer.html
      

  2.   

    可是offerlist这个目录是不存在的呢
    就是在首页里面设置了这么一个路径,其实是掩人耳目用的,真正的文件是http://127.0.0.1/offer.html
    啊。目的就是在用户点击那个连接时,显示的是http://127.0.0.1/offerlist/,但其实访问的是http://127.0.0.1/offer.html
      

  3.   

    用户应该想不到去敲一个offerlist在后面吧.
    是不是没有这个必要啊??
      

  4.   

    你怎么在IIS中映射的? 要做"通配符映射到asp.net处理",而不是".htm或.html映射"
      

  5.   

    我的连接时这个地址啊。连接里写的是offerlist
      

  6.   

    没有任何办法,http://127.0.0.1/offerlist/ 这种URL就属于"无扩展名的",必须用通配符.IIS7的整合模式下: 原IIS5/6的功能与ASP.net模块统一到同一级别下,或许可以降低不必要的服务器开销.
      

  7.   

    那如果我在IIS里面设置一个虚拟目录offerlist,你说怎么样?效果好不好?
      

  8.   

    http://hi.baidu.com/fzcskycn/blog/item/5f32f9d3684fbbd9a8ec9a31.html
    你看看这个吧
      

  9.   

    我做了你说的通配符映射了,可是没有生效哎。我是这么做的
    <httpHandlers>
          <add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
          <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
       </httpHandlers>
      

  10.   

    还需要在IIS中做通配符映射啊.
      

  11.   

    另外,对于http://127.0.0.1/offerlist/ 这类的伪目录
    建议做 iHTTPmodule处理(在模块中直接rewritepath()到html).而不是放在ihttphandler来处理.
      

  12.   

    1.在IIS中添加通配符映射.
    2.在global.asax或iHTTPmodule中,用正则验证请求URL,如果是http://127.0.0.1/offerlist这类型的.就使用RewritePath()方法使URL请求变为http://127.0.0.1/offer.html你用ihttphandler也可以实现,但显然绕了大圈子.浪费了服务器CPU资源.