首页 新闻 会员 周边

200分求:URL重写问题,请求帮助!

0
悬赏园豆:200 [已解决问题] 解决于 2010-11-03 15:22

请问在asp.net 中如何把

http://127.0.0.1/CDel/20  (此地址IIS说无法找到)

重写成 http://127.0.0.1/control/CDel.aspx?ID=20

 

在先等待,搞了一天都没搞好!@

分全给了!

 

问题补充: 最好有具体的配置方法 http://127.0.0.1/CDel/20 中 CDel和20都不是路径 其中20是参数 CDel表示CDel.aspx 就是这样的情况 用的是Intelligencia.UrlRewriter.RewriterHttpModule 大家的回答都是正确的! 我自己写的也是正确的,那为什么就是不能正常运行呢? 我仔细排查后发现,原来是因为IIS7 集成和经典模式的影响导致类似无后缀的都无法正常运行,改成集成模式就可以正常运行了,谢谢大家!@
prcog的主页 prcog | 初学一级 | 园豆:5
提问于:2010-11-03 09:05
< >
分享
最佳答案
0

 (此地址IIS说无法找到)

应该是把 http://127.0.0.1/control/CDel.aspx?ID=20 重写成 http://127.0.0.1/CDel/20 这个吧?

先说你用的哪个URLRewrite组件,然后再给你匹配的正则式。

收获园豆:100
Astar | 高人七级 |园豆:40805 | 2010-11-03 09:30
我用的是 Intelligencia.UrlRewriter.RewriterHttpModule 不好意思我着急描述反了!
prcog | 园豆:5 (初学一级) | 2010-11-03 09:31
@prcog:你用的IIS级别的重写组件?简单的重写是否生效?还是根本就不知道怎么用。
Astar | 园豆:40805 (高人七级) | 2010-11-03 10:07
http://127.0.0.1/CDel/20 如果是 http://127.0.0.1/CDel/20.aspx就能正确 如果后缀没有aspx的话就是404无法找到,我现在就是糊涂了,根本不知道怎么用才是正确的
prcog | 园豆:5 (初学一级) | 2010-11-03 10:14
@prcog:你的规则是怎么写的。RewriteRule    ^/CDel/(\d+)$    /control/CDel.aspx?ID=$1    [I, L]
Astar | 园豆:40805 (高人七级) | 2010-11-03 10:24
我是这样写的<rewrite url="~/CDel/(.+)" to="~/Cdel.aspx?ID=$1" /> 你这样的规则在哪写?在哪文件中写 加入我写成<rewrite url="~/CDel/(.+).aspx" to="~/Cdel.aspx?ID=$1" /> 这样就成正确执行了,但是我不需要~/CDel/(.+).aspx 这个后缀
prcog | 园豆:5 (初学一级) | 2010-11-03 10:33
@prcog:你用的是“UrlRewrite.NET”吧。<rewrite url="^/CDel/(\d+)$" to="~/control/CDel.aspx?id=$1" processing="stop" />另外你的Modules和configSections是否配置。 <configSections>   <section name="rewriter" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,Intelligencia.UrlRewriter" /> </configSections> <httpModules>     <add name="UrlRewriter"  type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" />   </httpModules>
Astar | 园豆:40805 (高人七级) | 2010-11-03 10:37
还是不行,404 搞不清楚到底哪出了问题!
prcog | 园豆:5 (初学一级) | 2010-11-03 10:45
@prcog:我一直用的这个组件,没有问题,配置文件如果确定没有问题的话。<httpModules> 主要是这个。如果不带扩展名的,如伪html需要调IIS,这种asp.net级别的不需要。
Astar | 园豆:40805 (高人七级) | 2010-11-03 10:51
仍然搞不清楚,你有没有QQ,可否远程帮我看下!呵呵,实在头疼不已,昨天一天加上今天,已经两天了!
prcog | 园豆:5 (初学一级) | 2010-11-03 11:12
其他回答(6)
0
收获园豆:40
慧☆星 | 园豆:5640 (大侠五级) | 2010-11-03 09:20
请问如何配置?在哪文件里面配置这信息?
支持(0) 反对(0) prcog | 园豆:5 (初学一级) | 2010-11-03 09:24
新建 CDel目录,然后在这个目录中新建 Default.aspx空文件
支持(0) 反对(0) 慧☆星 | 园豆:5640 (大侠五级) | 2010-11-03 10:21
直接访问127.0.0.1/Cdel 可以跳转的,但是如果是127.0.0.1/CDel/20就是404了
支持(0) 反对(0) prcog | 园豆:5 (初学一级) | 2010-11-03 10:50
http://www.cnblogs.com/cn795/archive/2009/09/03/1559902.html 看这篇文章的 步骤2:IIS配置
支持(0) 反对(0) 慧☆星 | 园豆:5640 (大侠五级) | 2010-11-03 13:43
0

webconfig加这样的节点看看

 <rewriter>        
        <rewrite url="~/tags/(.+)" to="~/tag/tagcloud.aspx?tag=$1" />
        <rewrite url="~/video" to="~/Class/Default.aspx" />
       <rewrite url="~/class/(.+)" to="~/Class/Default.aspx?classid=$1" />

 </rewriter>    

收获园豆:40
茂茂 | 园豆:2892 (老鸟四级) | 2010-11-03 09:22
CDel 和 20 都不是路径
支持(0) 反对(0) prcog | 园豆:5 (初学一级) | 2010-11-03 09:26
404 not found 不知道是怎么回事
支持(0) 反对(0) prcog | 园豆:5 (初学一级) | 2010-11-03 10:05
是否需要在IIS上配置什么?
支持(0) 反对(0) prcog | 园豆:5 (初学一级) | 2010-11-03 10:06
<rewrite url="~/CDel/(\d)\$" to="~/Cdel.aspx?ID=$1" /> 我觉得还是正则式的问题。你在修改看看
支持(0) 反对(0) 茂茂 | 园豆:2892 (老鸟四级) | 2010-11-03 12:29
<rewrite url="~/CDel/(\d)$" to="~/Cdel.aspx?ID=$1" />
支持(0) 反对(0) 茂茂 | 园豆:2892 (老鸟四级) | 2010-11-03 12:30
0
收获园豆:10
邀月 | 园豆:25475 (高人七级) | 2010-11-03 10:03
0

查一下,webconfig配置中httphander,httpmoudel两个配置节的相关配置吧,这两个就可以满足你的要求了,具体我也没配置过(因为正则不好),但我知道是这两个配置节。。。。。

如果想弄的复杂一些,功能多一些的话,找UrlRewriter。。。

收获园豆:10
顾晓北 | 园豆:10844 (专家六级) | 2010-11-03 11:14
0

如果是放到服务器上,必须对IIS设置下。

clound | 园豆:481 (菜鸟二级) | 2010-11-03 13:33
已经没分了,不好意思
支持(0) 反对(0) prcog | 园豆:5 (初学一级) | 2010-11-03 15:24
0

我来说几下:

第一:你用的目录级的转向,因此,需要使用URL重写组件或者在IIS6.0中添加通用映身即可。xp下是没有通用映身的。如果是IIS7.0默认好像支持目录级转身。

具体可以看http://www.cyqdata.com 支持全目录级转向,也支持自定义后缀转向。

第二:于是第一点需要使用组件或设置IIS添加映射,如果你买的虚拟主机,你需要联系客服给你解决,传说添加组件时需要重启IIS,这样会影响同一服务器的其它用户,所以不是自己服务器就不要用这种方式了。

第三:很多网站都使用shtml后缀,是因为默认iis6.0会处理这种后缀,使用这种后缀做Url重写,方便。

路过秋天 | 园豆:4787 (老鸟四级) | 2010-11-03 14:35
来晚了,我已经没分了,不好意思
支持(0) 反对(0) prcog | 园豆:5 (初学一级) | 2010-11-03 15:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册