【问题标题】:Can I check for HTTPS in Magento PHTML files?我可以检查 Magento PHTML 文件中的 HTTPS 吗?
【发布时间】:2010-08-11 12:01:42
【问题描述】:

我正在 Magento 网站上安装 Clicky 代码。我想仅在启用 HTTPS 的 Magento 页面上使用他们的 HTTPS 跟踪器。我该怎么做?

我试过了

<?php if($_SERVER['https'] == 'on') : ?>

但这不起作用。

任何关于识别 HTTPS 页面的建议都会有很大帮助!

谢谢。

【问题讨论】:

  • 作为下面答案的旁注,你不能省略协议吗?

标签: php magento


【解决方案1】:

Magento 实际上为你提供了一个方法。

使用它来检查您是否处于安全模式:

// check to see if your store is in secure mode
$isSecure = Mage::app()->getStore()->isCurrentlySecure();

希望有帮助!

谢谢, 乔

【讨论】:

  • getStore()->isCurrentlySecure()): ?>
  • 我使用此选项是因为我喜欢使用内置解决方案。我确信其他方法也有效。非常感谢所有回答的人。
  • 不完全确定为什么,但这似乎在 IE8 中不起作用。其他浏览器都正常。其他人有类似的问题吗?
  • @GergelyVarga 它不太可能是 IE8 本身。我会怀疑缓存或其他一些变量
  • 同意。错误出现在“自定义菜单”模块中,但只有 IE8 抱怨安全页面上的 URL 不安全。
【解决方案2】:

原生 Magento 解决方案

$isSecure = Mage::app()->getFrontController()->getRequest()->isSecure(); 
($isSecure) ? 'https://' : 'http://'; 

这有助于检查您的店面是在 https 还是 http

【讨论】:

    【解决方案3】:

    这可能看起来有点“黑客”,但您可以检查服务器协议并检查协议中是否存在字符“HTTPS”? :

    <?php 
    $protocol = $_SERVER['SERVER_PROTOCOL'];
    $protocol = substr($protocol,0,5); //will return something like HTTP/ or HTTPS
    if(preg_match("^HTTPS^",$protocol)){
    echo "ITS HTTPS";
    }
    ?>
    

    【讨论】:

      【解决方案4】:

      最好的选择如下

      <?php if( $_SERVER['HTTPS'] || strtolower($_SERVER['HTTPS']) == 'on' ){  /* HTTPS */ } else{ /* NOT SO HTTPS */ } ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-28
        • 1970-01-01
        相关资源
        最近更新 更多