Как прокинуть порт на mikrotik только в случаи когда в запросе есть соответствующая строка?
И не будет работать, так как URI передаётся только после установки соединения, на момент установки соединения ещё нельзя идентифицировать, куда перенаправить трафик. Для решения этой задачи надо использовать reverse proxy, в качестве которого популярно использовать nginx. Но так как тут не нужно раскидывать по нескольким разным серверам, то проще просто в целевом web-сервере отвергать запросы, не подходящие под условие. Если это почему-то невозможно (например, сервер является чужим приложением, в котором нельзя ничего изменить), то можно поставить nginx в разрез.
это бессмысленно, так как url скрыт от роутера шифрованием https

если все же надо для http то делай через прокси, при необходимости transparrent proxy (вроде бы когда то на микротике его запускали), трафик пропускай через свою прокси, которая будет уже по логике что хочешь делать, как подменять адрес подключения так и настраивать внешне перенаправления на роутере) но как это сделать именно на микротике не посоветую