Здравствуйте.
--
я так понимаю, что ссылки вы формируете не по id, а по некоему столбцу в БД, который имеет строковое значение.
так вот, если вы делаете get-запрос, то лучше это делать так:
// код action
...
public function actionName($link= ''){ // обращаемся к той переменной, которая выводит get
$model = Catalog::find()->where(['link' => $link])->one(); // обращаемся к БД с вопросом, есть ли такая запись
if ($link == NULL) {return $this->redirect(['catalog']);} // если нету, то делаем редирект*
...
---
* - если вставить последнюю строчку, вы избегаете страницы 404, метода случайных подборов на несуществующие страницы, а следствие, мешаете хакерам с инекциями, пользователь остаётся на сайте, и может выбрать что-то другое, а не пытаться понять, что значат эти три цифры. Не выводится страница с пустыми гет запросами, что очень важно!!! Редиректить можно куда угодно, куда укажете.
Буду рад знать, что помог.