php-在某些页面上但并非在所有页面上都使用https请求zend framework
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-在某些页面上但并非在所有页面上都使用https请求zend framework,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1675字,纯文字阅读大概需要3分钟。
内容图文
![php-在某些页面上但并非在所有页面上都使用https请求zend framework](/upload/InfoBanner/zyjiaocheng/652/1bebc6742a024771a22d48bffe0d7ca7.jpg)
我需要将https放在某些URL上,而不是放在所有URL上.我正在为所有链接使用zend URl视图助手.我有整个网站的* .example.com SSL证书.现在,我用https://www.example.co打开网站,然后主页或其他页面上的所有链接在URL中都包含https.我如何在https url上发出一些特定请求,而其他页面应该正常打开.
我还需要进行一些重定向,以便如果有人使用常规URL打开特定页面,则它们将重定向到https url.我认为.htaccess重定向将对此有效.
有帮助吗????
提前致谢!!!
解决方法:
URL ViewHelper仅组装从主机名绝对的路径.因此,您需要明确为https链接添加前缀
<? $url = $view->url(array('some' => 'params') /*, $route, $reset*/) ?>
<a href="https://<?= $_SERVER['HTTP_HOST] ?><?= $url ?>">my explicit https link</a>
您可能应该创建一个自己的小型viewhelper,它可以为您工作,还可以检查是否设置了HTTP_HOST等,也可以从配置中获取,而不是从$_SERVER获取.
$view->httpsUrl(array(‘some’ => ‘params’)/, $route, $reset/);
为了确保已定义的需求必须为https,可以通过添加前端控制器插件或您基于所有otehr控制器的抽象控制器类轻松完成.
一个插件可能看起来像这样
My_Controller_Plugin_HttpBlacklist extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
// when /foo/bar/baz is requested
if (($request->getModuleName() == 'foo' &&
$request->getControllerName() == 'bar' &&
$request->getControllerName() == 'baz')
/* || (conditions for more requests)*/) {
//very basic confifiotn to see if https is enabled, should be done better...
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
// should be done with Zend_Http_Reponse instead
header('Location: https://'. $_SERVER['HTTP_HOST] . $_SERVER['REQUEST_URI']);
exit;
}
}
}
}
然后简单地插入
$frontController->registerPlugin(new My_Controller_Plugin_HttpBlacklist);
内容总结
以上是互联网集市为您收集整理的php-在某些页面上但并非在所有页面上都使用https请求zend framework全部内容,希望文章能够帮你解决php-在某些页面上但并非在所有页面上都使用https请求zend framework所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。