在Slim3中使用fasteRoute匹配http | https

时间:2017-01-11 15:49:46

标签: php slim-3 fastroute

这里是我的样本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:.+}]]' ...  

但是只有一条线路会更好。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用url编码的url作为查询参数会更好。

但是当你真正使用它时,你也可以正确使用http(s)部分

ERROR: Access is denied

这意味着它需要$app->get('/api/search/{urlSchema:https?}://[{domaine}[/{notused:.+}]]', ..); ,然后才能获得0-1 http