问题描述如下:
使用网上的IisUrlRewriter.dll和IisUrlRewriter.ini这个组件(在此说明,不是微软的那种web.config这样的ASP.NET级别的组件)这个IIS级别的url重写组件,之前访问是没任何问题的,突然有一天不知道什么情况出现了/a/b/这样的目录结构不能访问的问题,但是附带html结尾的却可以重写,比如
RewriteRule ^/+index.html$ /a/b.aspx?t=index,但是
RewriteRule ^/+a/(\w*)/?$ /a/b.aspx?t=$1这样的却都不能访问了(之前是可以的),想请教下各位有没有遇到过这样的情况的,该如何解决呢?希望能帮我解答下。谁能解决可以再加分urlrewriteurliis

解决方案 »

  1.   

    这是伪静态的配置是将aspx伪装成HTML
      

  2.   

    很久以前用过的,现在用MVC了,你加上.html试试。你地址栏里面木有.aspx或者.html,浏览器找不到页面的
      

  3.   

    csdn回答问题的大神都不冒泡了,好桑心
      

  4.   

    /a/b/这个是目录吧,iis默认不是不让这样访问的吗
    应该是iis配置的问题,记不清了
      

  5.   

    如果是这个问题的话你把Ini文件去掉,在IIS里面重新添加试试
      

  6.   

    检查你那个ISAPI是否开启了对*通配符扩展名的映射,
      

  7.   

    我也想是不是这个问题,但在iis6.0中是没有这个配置选项的,每次都是扩展名不可用
      

  8.   

    很久以前我也为这个事情困扰过,最终还是没有找到解决办法。
    直接目录访问的话需要在iis做相应的正则映射,需要用到正则配置,这个试过,但是没有成功,最终放弃。
    还有一种就是后缀.html这个映射就简单了,在程序中配置一下,iis映射一下就ok了,我是这样做的,可以访问的。上面是我以前遇到的问题。
    现在访问目录可以打开页面我是这么处理的,例如在iis上设置默认页面为:index.aspx
    然后我在a文件夹下建立一个b文件夹然后直接/a/b/ 这样同样可以达到你要的效果,只不过有点麻烦。其实url重新不是很重要,程序没有漏洞是才是最重要的,url只不过隐藏一些信息或易记一点而已,个人见解仅供参考。
      

  9.   

    然后我在a文件夹下建立一个b文件夹,在b文件夹下创建一个index.aspx文件,然后直接/a/b/ 这样同样可以达到你要的效果。
      

  10.   

    在此结贴了,问题最终在一个帖子(http://bbs.csdn.net/topics/390131530)这个中(孟子E章)的回复中看到了答案,最终我总结了下:在IIS的网站(不是单独网站)属性中有一个默认的url重写而且优先级是高,但我们自己网站的url重写确实低,还有一些其他设置都没设置好,然后把那些都删掉,最后网站正常了(但这个设置一直就没动过,后面也没去看这些),在此非常感谢上面回帖的ggmm们,虽然你们的答案没帮我解决,但我认为能回复算是给一种鼓励和帮助了,结贴了