Не видел zend, но вот такое гуглится:
$route1 = new Zend_Controller_Router_Route_Regex(
’blogs/id(.*)’,array(
‘action’ => 'ololo',
’controller’ => 'lololo',
‘module’ => 'default'),
array(1 => 'id'));
$route2 = new Zend_Controller_Router_Route_Regex(
’blogs/post(.*)’,array(
‘action’ => 'lolo',
’controller’ => 'olol',
‘module’ => 'default'),
array(1 => 'id'));
$route3 = new Zend_Controller_Router_Route_Regex(
’blogs/’,array(
‘action’ => 'lolo',
’controller’ => 'olol',
‘module’ => 'default'),
array());
Последний можно и без регекса конечно же, но лень искать еще.
А число потом получать так
$this->getRequest->getParam('id')
А еще, может я со слешами натупил в регулярке.