Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
29 Ноябрь 2011

Прогноз посещаемости сайта (SE трафик).

Абсолютно любому человеку хочется максимизировать результат минимизировав затраты — это факт. Так же никто не хочет покупать «кота в мешке».

Тематика поискового продвижения не исключение, и ведя разговор с клиентом необходимо оперировать какими то цифрами — все хотят гарантий, но как известно поисковые машины с их заумными засекреченными алгоритмами ранжирования — вещь довольно ненадёжная и изменчивая. Тем не менее, на основе предоставляемых в общих доступ статистических данных попробуем спрогнозировать трафик для топовых позиций произвольного запроса.

А уже имея предполагаемый трафик и прогнозируемый бюджет по выводу сайта на нужные позиции, не трудно будет сравнить затраты на поисковое продвижение с затратами на покупку готового трафика (например с того-же директа).

Итак, начнём …
Читать полностью »

рубрики: SEO | 6 комментариев

23 Ноябрь 2011

Тест на вакансию веб-мастера

Попросили тестик сварганить, чтобы быстро можно было определить степень подготовленности веб-мастера (нужно в Санкт-Петербург в организацию, сайты которой я двигаю в поисковиках). Как всегда денег дают мало, а человек нужен более менее подготовленный на полный рабочий день.
Лично мне скорее всего побеседовать не получится, поэтому тест будет на бумажке, ответы гляну уже как смогу. (блин … подмывает найти какой нить скриптик и оформить тест по-человечески в виде онлайн формы, но времени нет совсем …)

Итак — зацените моё творение, и если не трудно, оставьте в комменты отзыв — не перегнул ли я палку 🙂

На все вопросы нужно отвечать буквально в 2х словах.

  1. Что означают права на файл 777 ? 644 ?
  2. для чего применяется сhown
  3. SSH — что такое и для чего нужно
  4. В чем разница в обработке .php и .html файлов
  5. Nginx — что такое и для чего применяется ?
  6. Что такое CMS и какие CMS Вы знаете ?
  7. Какой функцией можно задать заголовок странички в Битрикс API ?
  8. Для чего удобно использовать функцию preg_match()
  9. Объясните результат работы float: left; и где применяется
  10. Чем отличаются теги UL и OL ?
  11. Переведите на русский SELECT * FROM table WHERE id>’10’ ORDER BY name DESC limit 30, 10

P.S.
Дополнительно кандидату можно дать задание — сделать данный тест динамикой и закинуть для просмотра куда-нить на фришник, с поддержкой php 🙂

рубрики: Разное | 12 комментариев

17 Ноябрь 2011

Честный бэклинк от Битрикса

Сотрудничество с Битриксом даёт свои плоды — фирма от которой я выступаю в качестве веб-мастера благодаря моим стараниям недавно получила статус «Бизнес партнёра», на подходе «Сертифицированный партнёр» (чуток не хватает баллов, по сертификатам сотрудников уже всё в порядке — на днях сдал тесты по Администрированию 2-3).

Ну и лично мне, как веб-мастеру — честная ссылка с моего профиля на Битриксе.
Мелочь — а приятно 😉

P.S. Веб-мастера и дизайнеры желающие сотрудничать — велкам в ПМ — обсудим (не только Битрикс).

рубрики: SEO | 2 комментария

11 Ноябрь 2011

301 редирект по параметрам URL средствами php, apache, nginx

В многочисленных статьях по 301му редиректу обычно используют самые тривиальные случаи — с www на без www, с одной директории на другую и пр.
В моём случае необходимо было метнуть со странички с параметром ?param=value1…. на ?param=value2…. (какие именно писать не буду).
Небольшая сложность в таком подходе в том что ни аппач, ни nginx параметры не считают адресом странички.
С вариантом на php всё как обычно — просто решил его добавить до полноты картины 🙂
С него и начнём как с самого простого, но и самого неэффективного

Выдёргиваем нужный параметр value1 через $_REQUEST меняем что нужно, и редиректим куда нужно

header(«HTTP/1.1 301 Moved Permanently»);
header(«Location: http://……….);
exit();

Далее, вариант с аппачем — регулярное выражение необходимо наложить на QUERY_STRING
Правим .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^param=value1(.+)$
RewriteRule ^(.*)$ $1?param=value2%1 [R=301,L]

И последний — самый эффективный nginx — тут параметры лежат в переменной $args

if ($args ~* (.*)param=value1(.+)) {
set $args $1param=value2$2;
rewrite ^(.*)$ $1 permanent;
}

рубрики: Администрирование, Полезности, Программирование | Комментарии (1)

10 Ноябрь 2011

Дружим Битрикс и SAPE

Казалось бы — какие могут тут быть проблемы ?
А нет — есть они !

Подрубил стандартно — как учили.
Получаю «Нарушена целостность данных при записи в файл»
links.db не создается хоть ты тресни

После недолгих разбирательств, выясняется, что причина в требуемых Битрсксом настройках

mbstring.func_overload 2
mbstring.internal_encoding UTF-8

В sape.php неверно определяется длинна считываемого и записываемого блога из-за UTF-8 кодировки — в следствие чего links.db получается кривой — не проходит проверку и автоматически стирается.

Лечится просто:
ищем в коде sape.php строчку
@fwrite($fp, $data, $length);
меняем на
@fwrite($fp, $data);

Вуаля.

рубрики: Bitrix, Полезности | 6 комментариев

10 Ноябрь 2011

Динамическое подключение к SAPE статических сайтов

Вот такой вот тафтологичный заголовок получился 🙂

Немного хотел поделиться опытом — может кому пригодиться (хотя догадаться самому не сложно).
В общем довелось мне подрубить к сапе статический сайтик — эдак на 10 тыс html страниц 🙂

Идея проста — настраиваем обработчиком статических страниц свой скрипт, где уже динамически встраиваем сапу. (думал сначала тупо скриптом все странички поправить — но такой вариант мне не понравился). Сайт лежит на моём хостинге, так что проблем с редактированием конфигов у меня не возникло.

В моём случае фронтэндом у меня стоит nginx — вот в нём то и прописываем нужное правило.

location ~ \.(htm|html)$ {
charset windows-1251;
fastcgi_index index.php;
fastcgi_intercept_errors on;
root /…./site.ru/www/;
index index.php index.html index.htm;

include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_param SCRIPT_NAME /get.php;
fastcgi_param SCRIPT_FILENAME /…./site.ru/www/get.php;
}

в get.php уже дёргаем нужный статичный html файл
я его определил через $_SERVER[«DOCUMENT_URI»]
и меняем как душе угодно, например
$page = str_replace(‘‘, $sape.’‘,$page);
где в $sape нужный блок со ссылками

рубрики: SEO, Полезности, Программирование | Комментарии (0)

9 Ноябрь 2011

PHPBB 2 Битрикс — личные сообщения

В продолжение поста Bitrix API: конвертация форума с PHPBB.

Вчера запустил форум сконвертированный с PHPBB — и конечно же не без косяков … забыл я перенести персональные сообщения, а они, как оказалось, очень сильно юзались в старой версии форума.

Срочно пришлось ваять скриптик переноса личных сообщений с PHPBB на Битрикс форум (предполагается, что все юзера уже перенесены).

Итак:
В phpbb ЛС храняться в таблицах _privmsgs и _privmsgs_text (связь один к одному).
Логика отправки такая:
* Отправитель — отправил сообщение — новая запись privmsgs_type = 1 (у отправителя «исходящие»)
* Получатель увидел сообщение — изменился privmsgs_type = 5 (у отправителя «исходящие»)
* Получатель прочитал сообщение — изменился privmsgs_type = 0 (у получателя «отправленные») + в БД создается новая запись (копия предыдущей но со статусом) privmsgs_type = 2 (у отправителя «отправленные»)
* Отправитель переместил в Сохранённые privmsgs_type = 4
* Получатель переместил в Сохранённые privmsgs_type = 5

В Битриксе понадобится знание FOLDER_ID
1 — входящие
3 — отправленные
4 — корзина

Дальше всё более менее просто:
Дёргаем все сообщения из phpbb, далее заносим их в Битрикс с помощью API функции CForumPrivateMessage::Send() в соответствии с типами privmsgs_type кидаем в нужные папки FOLDER_ID.
Для сопоставления ID юзеров я заюзал функцию из предыдущей статьи __GetUserInfo

рубрики: Bitrix | Комментарии (1)

3 Ноябрь 2011

Социальный инжиринг — самый эффективный взлом

Социальнфй инжиниринг — явление, основанное на эксплуатации человеческих слабостей. Зачастую используемое в корыстных целях.

Хакер использующий социальную инженерию, так или иначе убеждает человека самому предоставить всю необходимую информацию (используемую далее как правило для взлома, и пр.).

Более развёрнутую информацию можно найти в статье.

А сегодняшний пост я пишу потому, что буквально полчаса назад мне удалось сменить адресную запись домена, используя лишь телефон, зная имя домена и наименование организации! (хотя юридически к данной организации я не имею никакого отношения). И получилось мне это сделать в очень крупной провайдерской организации! (пока только A запись поменяли, а вообще договорился о переносе домена в мою панельку регистратора)
Благо я действую в интересах этой организации, а что если бы … ??!

Социальный инжиринг — великая сила !

рубрики: security | 3 комментария

2 Ноябрь 2011

Перевод домена/сайта на новый сервер

В принципе информация в сети на эту тему присутствует — вот например статейка Как перенести сайт.
Всё бы ничего — вроде доходчиво написано и понятно, но в моём случае на старом сайте висит онлайн магазин с довольно неплохой посещаемостью (трафик в районе 1.5к уников)
Одновременно давать работать двум сайтам нельзя — «поплывут» базы, отрубать старую на сутки — потеря покупателей сказывающаяся на выручке.

Собственно, при правильно сформулированной задаче решение приходит само — уменьшение TTL в настройках DNS зоны.

Я поставил 3600 — час (было сутки — 86400).
Передёрнул бинд.
#killall -HUP named
#/etc/rc.d/named reload

Подожду сутки, пока новые настройки не подействуют — и в бой.
Как пройдёт — отпишу.
Кстати в статейке ещё один важный момент опущен — при переезде на старом серваке желательно отрубить возможность изменения данных (либо потом придётся их как то перетягивать — а это уже «головняк»)

P.S.
меняя что-то в кроне — не забываем передёргивать
/etc/rc.d/cron restart
или
killall -1 cron

рубрики: NIX, Полезности | 3 комментария

2 Ноябрь 2011

Убираем переход на летнее время в домене

Признаюсь, помимо моего SEO WEB хобби у меня ещё основная есть офлайн работа — IT специалист в небольшом офисе (примерно 60 машин + 5 серваков + телефония + …) в общем всё касающееся высоких технологий 🙂 Думаю некоторые фишки моей повседневной работы некоторым будут полезны … буду изредка выкладывать.

Итак, переход на летнее/зимнее время отменили, а компам в домене об этом сказать забыли.
Я решил проблему изменением часового пояса и убиранием галочки «переход на летнее время».
Теперь осталось всё это дело автоматически применить всем тачкам в домене…
технически у меня это получилось так:
\\SERVER\common\zone.bat

RunDLL32 shell32.dll,Control_RunDLL %SystemRoot%\system32\TIMEDATE.cpl,,/Z SE Asia Standard Time
WMIC COMPUTERSYSTEM Set EnableDaylightSavingsTime=FALSE

Первая строчка — установка часового пояса (мне нужно было поставить +7 GMT), вторая — снятие галочки.
Всё это дело запихал юзерам в автозагрузку, и уже загруженных толкнул так

psexec \\* -c -d -u domain\admin -p adminpass \\SERVER\common\zone.bat /quiet /passive

P.S.
Список зон можно глянуть в реестре
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

Ещё момент — не забываем менять время на всяких АТС и прочих чудо-аппаратах 🙂

P.S.S. Кому интересно решение с групповыми политиками, я сделал так: Читать полностью »

рубрики: Администрирование | 2 комментария