Авто редирект из http в https в Zend Framework
Posted in Development, PHP, Tips And Tricks, ZendFramework on July 1st, 2009 by Yaroslav Vorozhko – Be the first to commentПривет,
Следующий Helper решает проблему редиректа из http страници на https.
Скажем надо перейти от http://mysite.com/action/param/ на https://mysite.com/action/param/
PHP:
-
class My_Helper_SslSwitch extends Zend_Controller_Action_Helper_Abstract
-
{
-
public function direct()
-
{
-
$request = $this->getRequest();
-
$url = 'https://'
-
. $_SERVER['HTTP_HOST']
-
. $request->getRequestUri();
-
$redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
-
$redirector->gotoUrl($url);
-
}
-
}
-
}
Автор хелпера Matthew Weier O'Phinney
Далее в bootstrap добавляем путь к Helper в include_path
и вызываем его, таким образом мы переводим весь сайт на использование https.
PHP:
-
Zend_Controller_Action_HelperBroker::addPrefix('My_Helper');
-
$ssl = new My_Helper_SslSwitch();
-
$ssl->direct();
Если же вам надо включить SSL только для определенных контроллеров, то вы можете поместить следующий код в preDispath() метод контроллеров.
PHP:
-
$this->_helper->sslSwith();
В данном случае мы используем объект _helper для создания объекта sslSwith и вызова метода direct().
Note: Метод direct() вызыватеся автоматически для всех Action Helpers.
