这里是我的样本FastRoute for slim3:
$app->get('/api/search/[{domaine}[/{notused:.+}]]', function ($request, $response, $args) {
return $this->renderer->render($response, 'index.phtml', $args);
});
使用此FastRoute"正则表达式" ([{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:.+}]]' ...
但是只有一条线路会更好。
有什么想法吗?
答案 0 :(得分:1)
使用url编码的url作为查询参数会更好。
但是当你真正使用它时,你也可以正确使用http(s)部分
ERROR: Access is denied
这意味着它需要$app->get('/api/search/{urlSchema:https?}://[{domaine}[/{notused:.+}]]', ..);
,然后才能获得0-1 http
。