вот мой образец FastRoute для slim3:
$app->get('/api/search/[{domaine}[/{notused:.+}]]', function ($request, $response, $args) {
return $this->renderer->render($response, 'index.phtml', $args);
});
с этим FastRoute «regex» ([{domaine} [/ {notused:. +}]]) я сопоставляю:
/api/search/sample.com
/api/search/sample.com/test
/api/search/
И $ args [‘domaine’] возвращает «sample.com».
но я тоже хочу соответствовать этому:
/api/search/http://sample.com
/api/search/https://sample.com
добавить новый маршрут, как эта работа:
$app->get('/api/search/http://[{domaine}[/{notused:.+}]]' ...
$app->get('/api/search/https://[{domaine}[/{notused:.+}]]' ...
Но лучше всего одну строчку.
Есть идеи ?
Было бы лучше, если вы используете URL-адрес в качестве параметра запроса.
Но когда вы действительно, что использовать это, вы могли бы также пересмотреть часть http (s)
$app->get('/api/search/{urlSchema:https?}://[{domaine}[/{notused:.+}]]', ..);
это означает, что это требует http
а затем иметь 0-1 s
,
Других решений пока нет …