【问题标题】:piwik not working in HTTPSpiwik 无法在 HTTPS 中工作
【发布时间】:2017-05-08 05:49:47
【问题描述】:

我在子域analytics.mydomain.com/piwik [其他 VPS] 上安装 piwik,并在我的网站 [HTTPS] 的 HTML 中的head 标签中添加 javascript 代码。

我工作的是 laravel 5.3 框架。

这段代码:

<!-- Analytics Code -->
<script type="text/javascript">
    var _paq = _paq || [];
    // tracker methods like "setCustomDimension" should be called before "trackPageView"
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
        var u="//analytics.mydomain.com/piwik/";
        _paq.push(['setTrackerUrl', u+'piwik.php']);
        _paq.push(['setSiteId', '1']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
    })();
</script>
<!-- End Analytics Code -->

此代码在本地主机上工作,但在服务器上不工作。

我的网站只使用HTTPS

如何发行?

【问题讨论】:

  • 它不工作的症状是什么?例如:您是否遇到错误?它根本不打电话吗?访问没有显示在 Piwik 中吗?相关问题:Piwik 服务器上是否有 HTTPS?

标签: javascript php laravel matomo


【解决方案1】:

如果页面是 HTTPS,则所有资产(图像、CSS、JavaScript 等)在现代浏览器中也必须是 HTTPS。尝试包含 HTTP 资产将失败,并出现“混合内容”错误。

您将需要analytics.mydomain.com 的 SSL 证书。

【讨论】:

    【解决方案2】:

    不久前我遇到了类似的问题。像下面这样(在第 8 行)将 url 强制为 https 为我修复了它。我不能保证它会对你有用,但值得一试。

    <!-- Analytics Code -->
    <script type="text/javascript">
        var _paq = _paq || [];
        // tracker methods like "setCustomDimension" should be called before "trackPageView"
        _paq.push(['trackPageView']);
        _paq.push(['enableLinkTracking']);
        (function() {
            var u="https://analytics.mydomain.com/piwik/";
            _paq.push(['setTrackerUrl', u+'piwik.php']);
            _paq.push(['setSiteId', '1']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
        })();
    </script>
    <!-- End Analytics Code -->
    

    【讨论】:

    • 嗨,不要在 analytics.mydomain.com 中安装 SSL,也不能使用 HTTPS。
    • @mySun 好吧,您需要 SSL。您不能在 HTTPS 页面上使用 HTTP 资产。
    【解决方案3】:

    Your comment 建议您在analytics.mydomain.com 上没有 SSL,这意味着您需要强制代码使用 HTTPS:

    <!-- Analytics Code -->
    <script type="text/javascript">
        var _paq = _paq || [];
        // tracker methods like "setCustomDimension" should be called before "trackPageView"
        _paq.push(['trackPageView']);
        _paq.push(['enableLinkTracking']);
        (function() {
            var u="http://analytics.mydomain.com/piwik/";
            _paq.push(['setTrackerUrl', u+'piwik.php']);
            _paq.push(['setSiteId', '1']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
        })();
    </script>
    <!-- End Analytics Code -->
    

    当您使用protocol-relative URLs(如// 没有http:http:)时,它会告诉浏览器使用与原始页面相同的协议调用Piwik。如果您没有启用SSL Piwik 服务器,它无法接收 HTTPS 请求(如果它甚至在端口 443 上运行,它会给出证书错误)。

    【讨论】:

    • 如果此代码所在的页面是 HTTPS,HTTP 请求将被阻止。
    猜你喜欢
    • 2018-03-27
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多