我使用了URLRewrite,并设置了通配符.*
一切OK。在最后一步出现了问题,就是当文件夹的默认首页。
我挂在本地测试。
如:
192.168.0.10/abc
abc文件下有个index.aspx页面,此时在IIS中设置默认首页为index.aspx不管用,只能通过写URL规则来实现,所以写了以下规则:
<RewriterRule>
<LookFor>~/abc </LookFor>
<SendTo>~/abc/index.aspx </SendTo>
</RewriterRule>
OK。实现。但是。。。
首页却不行。我的首页放在项目根目录下。index.aspx
同样的IIS默认首页不灵,所以写了规则:
<RewriterRule>
<LookFor>~/ </LookFor>
<SendTo>~/index.aspx </SendTo>
</RewriterRule>
不灵。
再写一个:
<RewriterRule>
<LookFor>http://192\.168\.0\.10/ </LookFor>
<SendTo>~/index.aspx </SendTo>
</RewriterRule>
还是不灵。
此时访问192.168.0.10时报的是“未将对象引用设置到对象的实例”。
不知道为何解决。其它二级目录都没问题。就根目录首页不行。弄了两天了,毫无进展。
我个人感觉应该就只差一点点,具体是哪一点点我实在是研究不明白了。或者说这种情况在本地测试是行不通的,只有挂到服务器上直接将"http://www.abc.com/" sendto "~/index.aspx"就OK了?
有没有高手帮忙解决一下。
万份感谢!!
问题就出在了通配符.*
<add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
由于我需要实现类似:
192.168.0.10/cde
定向位:
192.168.0.10/abc.aspx?i=cde
这种效果。
所以只能使用.*
但这个时候也就出现了我上述的问题。
当然如果不用通配符的话.是没有问题的.但实现不了上面的效果.
<LookFor>~/(\d+)\.aspx</LookFor>
<SendTo>~/abc.aspx?i=cde </SendTo>
lookfor 里面写你要匹配的正则规则啊
以前在vs03下用过这个,也是这个问题,无论如何设置都没办法跳转网站首页的。好像是urlrewrite本身就有这个问题的。
现在在05下使用urlrewrite.net来做静态路径就没这个问题了。