Я применил перенаправление https на количество страниц, но всякий раз, когда я иду по другому маршруту через перенаправление ZF2, следующая страница открывается с https. Я хочу применить https только на выбранных страницах. Пожалуйста, предложите .. ??
После поиска много я нашел решение. Просто обновите Module.php вашего приложения следующим образом:
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);$eventManager->attach('route', array($this, 'doHttpsRedirect'));
// your code
}
и добавьте функцию doHttpsRedirect, например:
public function doHttpsRedirect(MvcEvent $e)
{
$sm = $e->getApplication()->getServiceManager();
$uri = $e->getRequest()->getUri();
$controller = $e->getRouteMatch()->getParam('controller');
$action = $e->getRouteMatch()->getParam('action');
$securedPages = array('Application\Controller\Login', 'Application\Controller\Register', 'Application\Controller\shopping');
if (in_array($controller, $securedPages)) {
$scheme = $uri->getScheme();
if ($scheme != 'https') {
$uri->setScheme('https');
$response = $e->getResponse();
$response->getHeaders()->addHeaderLine('Location', $uri);
$response->setStatusCode(302);
$response->sendHeaders();
return $response;
}
} else if (!in_array($controller, $securedPages)) {
if ($_SERVER["HTTPS"] == "on") {
$uri->setScheme('http');
$response = $e->getResponse();
$response->getHeaders()->addHeaderLine('Location', $uri);
$response->setStatusCode(302);
$response->sendHeaders();
return $response;
}
}
}
Это все..!!
Других решений пока нет …