Symfony有方法UrlMatcherInterface::match($pathinfo)
,它接受URL路径并返回有关它的信息(例如路由名称,路由参数,操作方法等)。因此,如果我将此方法称为$matcher->match('/help')
,则会获得有关http://example.com/help
网址的信息。
问题:如何获取有关包含子域的网址的信息,例如http://subdomain.example.com/events
?此方法仅接受没有主机名的路径,当我尝试使用主机名传递URL时,它会抛出ResourceNotFoundException
。
提前致谢。
答案 0 :(得分:0)
使用RequestContext & UrlMatcher找到解决方案。
$parsedUrl = parse_url($url);
$context = new RequestContext();
$context->setMethod($method); // e.g. GET
$context->setScheme($parsedUrl['scheme']);
$context->setHost($parsedUrl['host']);
$matcher = new UrlMatcher(
$this->router->getRouteCollection(),
$context
);
$routeInfo = $matcher->match($parsedUrl['path']);