请教一个自定义伪静态的问题

#1 阳光小老鼠

http://localhost/billlook//yearmonth/2011-01.htm
http://localhost/billlook/2010.htm


会出现重复的斜杠

我是这样设置的
'billlook' => array('yearmonth'),
  'billlook' => array('year'),

我在想是不是有2个相同的不行呢,另外一个地址就不会。第一会是因为YEARMONTH没有屏蔽掉,但只能选择其中的一个 好奇怪

2011-02-19 18:50:01

#2 jake

伪静态设置不能有两个相同的(参数不同),因为缩短参数args这个设置生成的地址就是没有了参数名称,那么单从URL是无法分辨是哪个参数。所以只能是一个设置。

你可以这样设置
'billlookmonth' => array('yearmonth'),
'billlookyeah' => array('year'),

或者只设置一个
'billlookmonth' => array('type', 'num'),
然后再根据type来判断是month还是year,生成的地址同样比较容易解读
http://sss.com/month/11.html
http://sss.com/year/2011.html

2011-02-19 21:04:58

#3 阳光小老鼠

回复 2 jake


    jack 我发现一个很有趣的问题了

'map' => array(  
        'billadd' => 'billing@bill_add',
  'billlook' => 'billing@bill_look',
  'billsearch' => 'billing@bill_search',
  'billview' => 'billing@bill_view',
  'billyear' => 'billing@bill_search_year',
  'billviewedit' => 'billing@bill_viewedit',
  'billdelete' => 'billing@bill_delete',
  ),   
  
  'args' => array(
  'billlook' => array('yearmonth'),
  'billlook' => array('year'),
  'billviewedit' => array('viewid'),
  'billdelete' => array('deleteid'),
  ),  
  ),
),
入口文件这样 会出现斜杠

如果变成这样就好了

'ext' => array(  
        'spUrlRewrite' => array(  
        'suffix' => '.htm',  
        'sep' => '/',
  'map' => array(  
        'billadd' => 'billing@bill_add',
  'billlook' => 'billing@bill_look',
  'billsearch' => 'billing@bill_search',
  'billview' => 'billing@bill_view',
  'billyear' => 'billing@bill_search_year',
  'billviewedit' => 'billing@bill_viewedit',
  'billdelete' => 'billing@bill_delete',
  ),   
  
  'args' => array(
  'billviewedit' => array('viewid'),
  'billdelete' => array('deleteid'),
  ),  
  ),
),

2011-02-20 01:42:49

#4 jake

斜杠在sp的伪静态里面,是分隔符。由于你设置两个重复的映射,只生效一个。所以当使用第二个的时候,spUrl还是会按第一个来生成,那么就会有一个空白的分隔符,那是第一个规则的参数——但是没有设置。

2011-02-20 08:43:03