0
我已经在页数上应用了https重定向,但每当我通过ZF2重定向的其他路由时,下一页将打开https。我只想在选定页面上应用https。请建议.. ??我如何从ZF2中的HTTPS页面重定向到HTTP页面?
我已经在页数上应用了https重定向,但每当我通过ZF2重定向的其他路由时,下一页将打开https。我只想在选定页面上应用https。请建议.. ??我如何从ZF2中的HTTPS页面重定向到HTTP页面?
搜索很多后,我找到了解决方案。只要更新你的应用程序的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;
}
}
}
这一切..!
Google是你的朋友。你有什么企图? – Mic1780 2014-09-20 04:10:41