piwik 无法在 HTTPS 中工作
piwik not working in HTTPS
我在子域 analytics.mydomain.com/piwik
[other VPS] 上安装了 piwik,并在我网站 HTML 的 head
标签中添加 javascript 代码 [ HTTPS].
我使用了 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
。
如何发行?
我 运行 不久前遇到过类似的问题。像下面(第 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:
<!-- 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 in. 如果你的Piwik服务器上没有SSL,它就不能接收HTTPS请求(即使是运行在443端口也会报证书错误)。
如果页面是 HTTPS,则所有资产 - 图片、CSS、JavaScript 等 - 在现代浏览器中也必须是 HTTPS。尝试包含 HTTP 资产将失败并出现 "mixed content" 错误。
您需要 analytics.mydomain.com
的 SSL 证书。
我在子域 analytics.mydomain.com/piwik
[other VPS] 上安装了 piwik,并在我网站 HTML 的 head
标签中添加 javascript 代码 [ HTTPS].
我使用了 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
。
如何发行?
我 运行 不久前遇到过类似的问题。像下面(第 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:
<!-- 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 in. 如果你的Piwik服务器上没有SSL,它就不能接收HTTPS请求(即使是运行在443端口也会报证书错误)。
如果页面是 HTTPS,则所有资产 - 图片、CSS、JavaScript 等 - 在现代浏览器中也必须是 HTTPS。尝试包含 HTTP 资产将失败并出现 "mixed content" 错误。
您需要 analytics.mydomain.com
的 SSL 证书。