2

这些我已添加为以下规则:

'search/do'=>'search/do',
'search/do/<town:.*?>'=>'search/do',
'search/do/<town:.*?>/<cat:.*?>'=>'search/do',
'search/do/<town:.*?>/<cat:.*?>/<scat:.*?>'=>'search/do',

url search/do & search/do/chicago 工作正常。但是 search/do/chicago/restaurants 给出了 $_GET['cat'] 的错误(未定义的索引 cat

4

1 回答 1

5

只需确保规则按特异性降序排列即可。更具体的规则应该首先出现,其次是较小的规则:

'search/do/<town:.*?>/<cat:.*?>/<scat:.*?>'=>'search/do',
'search/do/<town:.*?>/<cat:.*?>'=>'search/do',
'search/do/<town:.*?>'=>'search/do',
'search/do'=>'search/do',

chicago/restaurants由于第二条规则,您的问题中的规则匹配$_GET['town']'search/do/<town:.*?>'=>'search/do',并且它没有导航到第三条规则。所以你应该先有具体的。

于 2012-08-06T11:51:30.890 回答