首页 新闻 会员 周边 捐助

用URLRewriter组件URL重写

0
悬赏园豆:10 [已解决问题] 解决于 2010-12-01 09:14

在同一个页面有不同的请求页面我规则怎么写,页面链接的时候怎么写啊?(第一个规则是参数传的是一个经过编码的字符串,第二个规则参数传的是一个数字型的)

我现在是像下面那么写的,可是传到SearchRes页面后只有kw的参数值,ts的参数值怎么区分啊
 规则:
<RewriterRule>
        <LookFor>~/SearchRes/(\S+)\.html</LookFor>
        <SendTo>~/SearchRes.aspx?kw=$1</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/SearchRes/(\d+})\.html</LookFor>
        <SendTo>~/SearchRes.aspx?ts=$1</SendTo>
   </RewriterRule>

凭栏处的主页 凭栏处 | 初学一级 | 园豆:45
提问于:2010-11-29 16:06
< >
分享
最佳答案
0

<RewriterRule>
        <LookFor>~/SearchRes/(\S+)\.html</LookFor>
        <SendTo>~/SearchRes.aspx?kw=$1</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/SearchRes/ts-(\d+})\.html</LookFor>//总得还是要来点特殊的吧...
        <SendTo>~/SearchRes.aspx?ts=$1</SendTo>
   </RewriterRule>

收获园豆:10
三桂 | 老鸟四级 |园豆:3565 | 2010-11-30 18:20
这样好像不行啊,ts还是取不到值啊,参数还是让kw取了, 我在页面上是这么写的: <a href='SearchRests/<%#Eval("kw") %>.html'> <a href='SearchRests/ts-<%#Eval("ts") %>.html'>
凭栏处 | 园豆:45 (初学一级) | 2010-12-01 08:14
<LookFor>~/SearchRes/ts-(\d+})\.html</LookFor>//总得还是要来点特殊的吧... ///////////////////////////这个正则写错了,多了一个大括号!
凭栏处 | 园豆:45 (初学一级) | 2010-12-01 09:14
其他回答(1)
0

因为123.html也是字符串呀,把下面那个规则放上面试试...,然后加上一个匹配结束跳过的标签。

Astar | 园豆:40805 (高人七级) | 2010-11-29 18:26
不是很明白,怎么能给他们两个分开呢?
支持(0) 反对(0) 凭栏处 | 园豆:45 (初学一级) | 2010-11-29 18:37
搜索参数建议还是放到“?”后边,避免带来搜索路径问题。 看你的URL重写组件是不是匹配成功之后就结束之后的匹配,如果是那么 将它们交换位置,把按匹配范围大小从小到大排列。 <RewriterRule> <LookFor>~/SearchRes/(\d+)\.html</LookFor> <SendTo>~/SearchRes.aspx?ts=$1</SendTo> </RewriterRule> <RewriterRule> <LookFor>~/SearchRes/(\S+)\.html</LookFor> <SendTo>~/SearchRes.aspx?kw=$1</SendTo> </RewriterRule>
支持(0) 反对(0) 慧☆星 | 园豆:5722 (大侠五级) | 2010-11-29 20:27
这样写也不行啊!效果跟我那么写是一样的,还有更好的方法吗?
支持(0) 反对(0) 凭栏处 | 园豆:45 (初学一级) | 2010-11-30 08:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册