(Бес)полезные советы. Частично это конечно повторение известных вещей, но тем не менее …
Уже не первый раз сталкиваюсь с конструкциями вида
include('http://otherdomain/1.html');
или
virtual('/scj/top/top.html');
причем таких конструкций может быть по 10 штук на темплейт. От скрипта это не зависит, так не надо делать вообще.
Почему:
ПХП отрабатывает ДО того как серфер получает страницу. Поэтому если у вас есть include('http://otherdomain/1.html'), который находится на другом сервере вы получаете задержку в отдаче страницы. А если по какой-то причине этот другой домен еще и решил притормозить, то у вас найнет тормозить в отдаче и оригинальный домен.
Даже если otherdomain на том же серваке, то как и в случае virtual('/scj/top/top.html'), на 1 запрос к серваку у вас получается как минимум 2: 1 запрос конкретно к вашему домену + 1 запрос include('http://otherdomain/1.html') или virtual('/scj/top/top.html').
Если у вас 10 инклудов вида virtual('/scj/top/top.html') то у вас сервак на 1 реальный запрос выполняет каждый раз еще 10 подзапросов. Как это отражается на нагрузке думаю объяснять не надо.
Как надо делать:
всегда юзать только локальные инклуды. Те virtual('/scj/top/top.html') надо делать как include('/home/user/domain/scj/top/top.html');
если надо инклудить файлик с дургого домена который на том же серваке - аналогично, просто другой путь.
Если файл на другом серваке то попросить админа прописать копирование этого файла по крону на локальный домен и опять же делать локальный инклуд.
еще вариант
readfile('http://domsin/1.html') - это аналогично include('http://...')
Как обработать параметры
обычно банероротаторы инклудят через JS, но некоторые локальные ротаторы требуют инклуда в темплейте и их инклудят вида
<?php include('http://domain.com/banner.php?x=3&y=2'); ?>
поскольку это не совсем хороший вариант лучше сделать так
<?php $_GET['x'] = 3; $_GET['y'] = 2; include('banner.php'); ?>
таким образом и параметры передать, и инклуд сделать локальным, а не через http.
в .htaccess
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN)$ [NC]
RewriteRule ^$ http://google.com [R,L]
Часто сайты трейдят в узких нишах и на один и тот же cqn один и тот же серфер приходит несколько раз, но из разных источников. Для таких неуникальных посетителей иногда имеет смысл ротировать страницу. Те создать например 2 дизайна и уникам показывать 1, а неуникам 2 (3 4 5.. ).
Для этого в Settings - CJ pages можно вписать 2 и более строк, по одному дизайну на строку
/home/user/domain/design1.html /home/user/domain/design2.html /home/user/domain/design3.html
и при первом заходе юзер видит дизайн1 , при втором - 2 и так далее.
Если вы используете внутренюю ротацию есть 2 варианта.
1. В Rotation - Tube - Tube Settings тестовая опция ротирования страниц для равов. Смысл в следующем: если у вас на индексе тумбы и приходит рав, то автоматически ему показывает 2ю страницу. Если видел 2ю, то 3я, и так далее. Аналогично для категорий: если приходит прямо на категорию и данную страницу категории уже видел - показываем ему следующую. NOTE! Это правило срабатывает только в том случае, если реферер не ваш домен. Сделано дабы человек кликая с морды на тумбу категории всегда видел эту тумбу на открывшейся странице (те ему надо видеть первую страницу категории).
2. Только индексная страница как в стриме например. делаем Х файлов вида
domain/1.php
<?php
$_GET['page'] = 1;
include('/scj/cgi/index.php');
domain/2.php
<?php
$_GET['page'] = 2;
include('/scj/cgi/index.php');
и прописываем CJPages
/home/user/domain/1.php
/home/user/domain/2.php
и так далее
Если надо сделать ссылки на трейдеров не через аут, то такие клики можно считать используя AJAX
Пример топа
<a target=_blank href='_MEMBER_1_URL' class='domain_css' trader='_MEMBER_1_'>test</a>
из чего получаем результат вида
<a target=_blank href='http://somedomain.com/' class='domain_css' trader='somedomain.com'>test</a>
те линки прямые. Теперь, что бы учитывать эти клики надо добавить код, который будет выполнять AJAX запрос
<script src='/YOUR_FOLDER/includes/js/jquery.js'></script>
<script type="text/javascript">
$(document).ready(function(){
$('.domain_css').each(function(){
$(this).on('click', function(){
$.get('/YOUR_FOLDER/cgi/out.php?member=' + $(this).attr('trader'),
{
},
function(data) {
}
);
});
});
});
</script>
Те тут главное моменты:
Можно проследить на какую страницу приходит траффик и какие есть переходы на сайте.
В Trade - Statistics - Page Track 2 колонки: Inbound Views (если реф не наш сайт) and Local Views (если реф - наш сайт)
Есть 2 варианта
1. &page_track=… в урле
2. в темплейте таг <!–PAGE_TRACK_….–>
На данный момент есть варианты
<!--PAGE_TRACK_CURRENT_PAGE--> <!--PAGE_TRACK_CATEGORY--> <!--PAGE_TRACK_любое_слово-->