Второе правило в вашем списке маршрутизации просто ищет два набора любых комбинаций символов после имени домена и рассматривает первое как город, а второе как категорию.В результате он по ошибке анализирует «differentcontroller» как название города и «add» как категорию.Если вы хотите сохранить эту структуру URL, вам нужно добавить более конкретные маршруты в свой файл маршрутизации, чтобы охватить ситуации, такие как «добавить», или рассмотреть возможность изменения существующего макета URL на что-то более конкретное, например:
Router::connect('/places/:town', array('controller'=>'places', 'action'=>'index'), array('pass' => array('town')));
Router::connect('/places/:town/:category', array('controller'=>'places', 'action'=>'index'), array('pass' => array('town', 'category')));