public function onKernelRequest(GetResponseEvent $e)
{
if (HttpKernelInterface::MASTER_REQUEST !== $e->getRequestType()) {
return;
}
$request = $e->getRequest();
// skip SSL & non-GET/HEAD requests
if ($request->isSecure() || !$request->isMethodSafe()) {
return;
}
// skip whitelisted URLs
if ($this->whitelist && preg_match('{' . $this->whitelist . '}i', $request->getPathInfo() ?: '/')) {
return;
}
// skip non-listed hosts
if ($this->hosts && !preg_match('{' . $this->hosts . '}i', $request->getHost() ?: '/')) {
return;
}
// redirect the rest to SSL
$e->setResponse(new RedirectResponse('https://' . substr($request->getUri(), 7)));
}