2017-01-25 2 views
0

Я запускаю веб-аналитику Piwik на сайте с различным доменным именем/адресом в зависимости от того, какая сеть просматривает сайт. Кроме того, имя/адрес сервера Piwik изменяется в зависимости от сети.Piwik: имя сервера изменяется в зависимости от сети

Допустим, пользователь А находится в сети аа, а также адрес сервера Piwik в этой сети является: 192.168.0.1 Пользователь б на сети бб, и есть адрес одного и того же сервера: 192.168.0.2

Как я могу заставить Piwik работать в обеих сетях? Использование dns не является вариантом. В вариантах Piwik, похоже, нет решения. Есть ли другой способ сделать это?

Вот часть сценария отслеживания, который определяет адрес сервера:

(function() { 
var u="//192.168.0.1/piwik/"; 
_paq.push(['setTrackerUrl', u+'piwik.php']); 
_paq.push(['setSiteId', '2']); 
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); 
})(); 

ответ

0

Я придумал решение, но так как он может быть полезен для других тоже, я решил ответить на мой собственный вопрос.

Проще всего это сделать объявление if-функции функции, которая определяет адрес сервера. Домены страниц в обеих сетях aa и bb различны, поэтому просто узнайте в сети witch, где был загружен сайт, и измените адрес в соответствии с сетью.

Скажем, домен сайта в сети Аа: 192.168.0.3 и в бб сети домен сайт 192.168.0.4

(function() { 
if (window.location.hostname === "192.168.0.3") 
{var u="//192.168.0.1/piwik/"} 
else { 
var u="//192.168.0.2/piwik/"; 
} 
_paq.push(['setTrackerUrl', u+'piwik.php']); 
_paq.push(['setSiteId', '2']); 
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); 
})();