|
Раздел "Веб-мастеру". Содержание:
Веб-мастеринг:
По вопросам преобразования ссылок просьба обращаться к Apache
Будьте проще – и люди к вам потянутся
Рисуем баннеры
Долбаные баннеры
Веб-кодинг:
Строительные кирпичики для сайта
Обмен ссылками:
Новые объявления
Раздел "Веб-мастеру". Веб-мастеринг:
 | По вопросам преобразования ссылок просьба обращаться к Apache |
|
Допустим, у
вас есть работающий веб-сайт, состоящий из большого
количества статических html-страниц. Все идет хорошо, но
вдруг в какой-то момент вы решаете усовершенствовать
работу веб-сайта и добавляете динамические скрипты: в
результате страничка новостей теперь доступна по ссылке
http://www.site.com/cgi-bin/news.cgi вместо
прежней http://www.site.com/news.html, а каталог,
в котором хранились страницы с описанием российских
регионов, полностью перекочевал в динамику, и наш горячо
любимый 77-й регион теперь доступен по неэстетично
выглядящей ссылке
http://site.ru/cgi-bin/regions.pl?region=77&mode=brief
вместо легко запоминаемой
http://site.ru/regions/77.html.
Подобные изменения требуют замены соответствующих
ссылок на всех страницах вашего веб-сайта, которые
ссылаются на новости и регионы, но это еще цветочки.
Основная проблема заключается в том, что на эти страницы
могут ссылаться другие веб-сайты, о существовании
которых вы даже не подозреваете. Да и посетители вашего
веб-сайта могли создать соответствующие закладки в своих
браузерах, и поэтому они будут неприятно удивлены, когда
вместо странички новостей получат ошибку "страница не
найдена".
Анализ проблемы наводит на мысль о
том, как хорошо было бы иметь возможность обращаться к
одним и тем же страницам по различным http-ссылкам,
причем для страниц с похожими ссылками было бы очень
удобно описать одно общее для них правило вместо того,
чтобы для каждой страницы выписывать все возможные
варианты ведущих на нее http-ссылок. Если ваш веб-сайт
работает под управлением весьма популярного в настоящее
время веб-сервера Apache (скорее
всего, это именно так), то в вашем распоряжении есть
мощнейшее средство преобразования http-ссылок, которое
реализуется специальным программным модулем
mod_rewrite. Некоторые директивы данного модуля
могут использоваться только в конфигурационном файле
самого веб-сервера, другие же - в специальных файлах
.htaccess, которые можно располагать в
подкаталогах иерархии вашего веб-сайта. Именно эти
директивы из .htaccess и производят основную
работу по преобразованию http-ссылок, поэтому их мы
опишем более подробно.
Для перестраховки можно уточнить у службы технической
поддержки вашего хостера, включен ли модуль
mod_rewrite в состав веб-сервера, обслуживающего
ваш веб-сайт, и допускается ли использование его
директив в файлах .htaccess. Поскольку данный
модуль широко используется во многих проектах, каждый
уважающий себя хостер на оба ваших вопроса ответит: "Да,
конечно". Если же вы получили отрицательный ответ, это
хороший повод задуматься о смене хостинг-провайдера на
другого, предоставляющего более качественные услуги.
Прежде чем углубиться в описание возможностей модуля
mod_rewrite, приведем пример решения двух
описанных выше проблем:
# Включение преобразования ссылок RewriteEngine
on
# Новостная страница RewriteRule
^news.html$ /cgi-bin/news.cgi
# Страницы с
описаниями регионов RewriteRule
^regions/([0-9]+)\.html$
/cgi-bin/regions.pl?region=$1&mode=brief
Модуль mod_rewrite веб-сервера Apache -
это мощнейшее средство преобразования http-ссылок
Директива RewriteEngine
включает или выключает преобразование http-ссылок
(соответственно "RewriteEngine on" или
"RewriteEngine off"). Действие директивы
распространяется на текущий каталог и на все его
подкаталоги, в которых нет своих файлов .htaccess
с данной директивой.
Правила преобразования ссылок наследуются чуть
сложнее. Чаще всего преобразование по умолчанию
отключено в основном конфигурационном файле веб-сервера.
Допустим, что вы записали в .htaccess некоего
каталога директиву "RewriteEngine on" и некоторое
количество правил преобразования. Перейдем теперь в один
из подкаталогов.
- Если здесь нет файла .htaccess, либо в нем
нет ни одной директивы модуля mod_rewrite, то
все правила преобразования наследуются от
родительского каталога.
- Если в файле .htaccess есть хотя бы одна
директива модуля mod_rewrite, то не наследуется
ничего, а состояние по умолчанию выставляется таким
же, как в главном конфигурационном файле веб-сервера
(по умолчанию "off"). Поэтому, если вы желаете
иметь в этом каталоге свой набор правил
преобразования, не забудьте добавить директиву
"RewriteEngine on".
- Есть и третий вариант. Допустим, вы желаете
унаследовать все правила из родительского каталога и
добавить к ним несколько новых - для этого вам
понадобится директива RewriteOptions, которая
допускает только один фиксированный аргумент. Таким
образом, в файл .htaccess вы должны записать
ваши новые правила и две директивы: "RewriteEngine
on" и "RewriteOptions inherit".
А теперь перейдем непосредственно к описанию правил.
Преобразования описываются при помощи директивы
RewriteRule. Правил может быть несколько, при
этом все они применяются в порядке их описания. Когда
правила заканчиваются, они вновь начинают применяться с
самого начала, и этот цикл продолжается до тех пор, пока
"срабатывает" хотя бы одно из правил. В некоторых
случаях это может приводить к зацикливанию, поэтому при
описании правил нужно быть предельно внимательным.
Существует несколько специальных флагов, которые
предоставляют возможность прервать этот процесс на
определенном правиле или пропустить несколько правил (об
этом будет рассказано ниже). Синтаксис директивы
RewriteRule выглядит следующим образом:
RewriteRule "исходный путь" "замена"
"флаги"
Директива RewriteEngine включает или
выключает преобразование http-ссылок
Исходный путь - это часть
исходной ссылки, от которой отрезаны имя сервера, путь
до текущего каталога и параметры запроса. Допустим, что
ваш веб-сайт www.site.com расположен в каталоге
/home/site/www. Тогда для ссылки
http://www.site.com/test/list.html?mode=0
исходным путем в каталоге /home/site/www будет
test/list.html, а в каталоге
/home/site/www/test - list.html. Исходный
путь задается регулярным выражением (синтаксис
регулярных выражений Apache подробно описан в статье "Маленькие
настройки большого веб-сервера"). Символ !
перед исходным путем означает, что правило "срабатывает"
по несовпадению ссылки с заданным регулярным
выражением.
Замена - это то, на что будет заменена
исходная ссылка в случае "срабатывания" правила. Замена
может быть относительной (если она не начинается с
символа /) и абсолютной (если она начинается с
символа / или представляет собой полную ссылку,
начинающуюся с http:// или https://). В
замене можно использовать определенные части исходного
пути, отмеченные круглыми скобками. При этом макрос
$1 обозначает ту часть исходного пути, которая
расположена внутри первой пары скобок, $2 -
внутри второй пары и так далее.
Флаги - это дополнительные опции для данного
правила, которые перечисляются в квадратных скобках
через запятую.
- R (redirect) останавливает процесс
преобразования и возвращает результат браузеру клиента
как редирект на данную страницу (302, MOVED
TEMPORARY). С данным флагом можно указать другой
код результата, например "R=301" возвратит
редирект с кодом 301 (MOVED
PERMANENTLY).
- F (forbidden) возвращает ошибку
403 (FORBIDDEN).
- G (gone) возвращает ошибку
410 (GONE).
- P (proxy) - по этому флагу
Apache выполняет подзапрос (sub-request)
к указанной странице с использованием программного
модуля mod_proxy, при этом пользователь ничего
не узнает об этом подзапросе. Если модуль
mod_proxy не входит в состав вашей сборки
Apache, то применение данного флага вызовет
ошибку.
- L (last) останавливает процесс
преобразования, и текущая ссылка считается
окончательной.
- N (next) запускает процесс
преобразования с первого по порядку правила.
- C (chain) объединяет несколько
правил в цепочку. Если первое правило цепочки "не
срабатывает", то вся цепочка игнорируется.
- NS (nosubreq) разрешает
"срабатывание" правила только для настоящих запросов,
игнорируя подзапросы (подзапрос может быть вызван,
например, включением файла при помощи директивы
SSI*).
- NC (nocase) отключает проверку
регистра символов.
- QSA (qsappend) добавляет исходные
параметры запроса (query string) к
замене. Если замена не включает в себя новые
параметры запроса, то исходные параметры запроса
добавляются автоматически. Если же включает, то без
флага QSA исходные параметры запроса будут
утеряны.
- PT (passthrough) останавливает
процесс преобразования и передает полученную новую
ссылку дальше "по цепочке", чтобы над ней могли
"поработать" директивы Alias,
ScriptAlias, Redirect и им подобные
(тогда как при флаге L новая ссылка считается
окончательной и не подлежит дальнейшей обработке).
- S (skip) пропускает следующее
правило, если данное правило "сработало". Можно
пропускать несколько правил, если указать их
количество, например: "S=3".
- E (env) устанавливает переменную
окружения, например: "E=переменная:значение".
Примеры (во всех случаях показано содержимое файла
.htaccess, расположенного в корневом каталоге
веб-сайта):
# Пример 1. Каталоги проектов project1 и project2
веб-сайта www.site.com ранее содержали статические
html-страницы, теперь же эти страницы расположены на
двух отдельных веб-сайтах project1.ru и project2.ru (в
той же иерархии)
# Первый способ требует наличия
модуля mod_proxy и создает дополнительную нагрузку на
веб-сервер, но зато посетитель веб-сайта не знает,
откуда в действительности выбираются
веб-страницы
# Символы / даются с вопросительными
знаками, чтобы правильно обработать ссылки вида
http://www.site.com/project1 и
http://www.site.com/project1/
RewriteRule
^project1/?(.*) http://project1.ru/$1 [P] RewriteRule
^project2/?(.*) http://project2.ru/$1 [P]
#
Второй способ возвращает внешние редиректы, так что
посетитель увидит в адресной строке своего браузера, что
страницы реально расположены на других
веб-сайтах
RewriteRule ^project1/?(.*)
http://project1.ru/$1 [R] RewriteRule ^project2/?(.*)
http://project2.ru/$1 [R]
# Допустим, что в
редиректах мы желаем передать в запросе какие-нибудь
дополнительные параметры. Применение флага QSA позволит
нам сохранить параметры оригинального запроса, так что
ссылка http://site.com/project1/news.pl?mode=daily будет
преобразована в
http://project1.ru/news.pl?came_from=site.com&mode=daily
RewriteRule
^project1/?(.*) http://project1.ru/$1?came_from=site.com
[R,QSA] RewriteRule ^project2/?(.*)
http://project2.ru/$1?came_from=site.com
[R,QSA]
# Пример 2. Электронная книга отдается
динамическим скриптом в то время как нам желательно
иметь "красивую" иерархию вида
"http://lib.ru/book1/chapter3.html". Кстати, расширение
.html помогает нам скрывать динамическую природу нашего
веб-сайта
RewriteRule
^([a-z0-9]+)/([a-z0-9]+)\.html$
/cgi-bin/view_chapter.cgi?book=$1&chapter=$2
[NC]
# Пример 3. Нам желательно скрыть от
пользователя используемую на веб-сайте технологию, для
чего мы не будем пользоваться расширениями в наших
http-ссылках. Без флага L данное правило
зациклится
RewriteRule (.+) $1.html [L]
#
В то же время посетитель может ввести ссылку с
расширением по одному ему понятным причинам. Правильно
обработать такую ситуацию поможет следующее
правило:
RewriteRule ^([^.]+) $1.html
[L]
# Пример 4. На веб-сайте есть статические
ссылки с расширением .html и динамические ссылки с
расширением .pl. Допустим, что динамические ссылки
остались прежними, а статические должны обрабатываться
cgi-скриптом
# Первый вариант предельно
прост:
RewriteRule (.+)\.html$
/cgi-bin/new_script.cgi?page=$1 [L]
# Второй
вариант более общий. Например, если нам нужно
преобразовать массу различных ссылок кроме одной-двух,
можно воспользоваться специальной "заменой без
изменения" (обозначается символом -):
RewriteRule
\.pl$ - [L] RewriteRule (.*)
/cgi-bin/new_script.cgi?page=$1 [L]
# Пример 5.
Есть один особый случай, когда делается внешний редирект
на относительную ссылку. Допустим, мы находимся в
каталоге /home/site.com/www/test веб-сайта site.com.
Каталог доступен по ссылке http://site.com/test/. Нам
нужен внешний редирект с файлов *.html на *.shtml.
Приводимые директивы записываются в файл
/home/site.com/www/test/.htaccess
# Решение
тривиально, если использовать абсолютную замену, но в
этом случае нам приходится жестко прописывать название
каталога, что не совсем хорошо:
RewriteRule
(.+)\.html /test/$1.shtml [R]
# Если написать
замену как относительную ссылку (см. ниже), то результат
будет не таким, каким мы его ожидаем увидеть (это
обусловлено особенностями преобразования ссылок на
уровне каталогов): например, ссылка
http://site.com/test/aaa.html будет преобразована в
http://site.com/home/site.com/www/test/aaa.shtml
RewriteRule
(.+)\.html $1.shtml [R]
# По полученной ссылке
видно, что там подставлен полный реальный путь к нужному
файлу. Решить проблему можно при помощи директивы
RewriteBase, параметром которой является префикс для
всех относительных замен, находящихся в данном файле
.htaccess
RewriteBase /test
# Пример 6.
Задание переменных окружения применяется очень редко, но
тем не менее приведем два примера, не нуждающихся в
пояснении
# Сохраняет в окружении расширение
исходного файла
RewriteRule ^([^.]+)\.([a-z]+)$
/cgi-bin/new_script.cgi?page=$1 [L,E=EXT:$2]
#
Сохраняет в окружении содержимое http-заголовка
X-Forwarded-For
RewriteRule \.(cgi|pl)$ -
[L,E=%{HTTP:X-Forwarded-For}]
Директивы RewriteRule описывают правила
преобразования ссылок
Несмотря на такое изобилие,
преобразование ссылок не ограничивается только
директивой RewriteRule. Есть еще одна директива,
которая используется не менее часто - это директива
RewriteCond. Данная директива предназначена для
проверки некоторых дополнительных параметров и всегда
ставится непосредственно перед директивой
RewriteRule. Если директива RewriteCond
"срабатывает", то проверяется следующая за ней директива
RewriteRule, если же "не срабатывает", то
директива RewriteRule игнорируется.
# Если подряд записаны несколько директив
RewriteCond, то следующая за ними директива RewriteRule
проверяется только в том случае, когда "сработали" все
директивы RewriteCond:
RewriteCond
условие1 RewriteCond условие2 RewriteRule
преобразование1
RewriteRule преобразование2
# Следует обратить внимание, что в приведенном
выше примере вторая директива RewriteRule проверяется в
любом случае, так как все директивы RewriteCond
относятся только к первой директиве RewriteRule. Если же
вы желаете, чтобы условия относились к обеим директивам
RewriteRule, то вам придется повторить их еще
раз:
RewriteCond условие1 RewriteCond
условие2 RewriteRule
преобразование1
RewriteCond
условие1 RewriteCond условие2 RewriteRule
преобразование2
# Применение флага OR позволяет
объединять условия не по И (как это делается по
умолчанию), а по ИЛИ. В следующем примере директива
RewriteRule проверяется, если выполняется любое из двух
предшествующих условий:
RewriteCond условие1
[OR] RewriteCond условие2 RewriteRule
преобразование
Синтаксис директивы RewriteCond выглядит
следующим образом:
RewriteCond "проверяемое выражение" "условие"
"флаги"
Проверяемое выражение - это строка, которая
может состоять из обычных символов, макросов и
переменных. Макросы $1, $2 и так далее
ссылаются на соответствующие выражения в скобках из
следующей по порядку директивы RewriteRule.
Макросы %1, %2 и так далее ссылаются на
выражения в скобках из предыдущей по порядку директивы
RewriteCond. Кстати, макросы %* могут
также использоваться и в директивах RewriteRule
для ссылки на предыдущую директиву RewriteCond.
Переменные записываются в виде
%{ИМЯ_ПЕРЕМЕННОЙ}. Наиболее часто используются
следующие переменные: QUERY_STRING (параметры
запроса), REMOTE_ADDR (IP-адрес посетителя), REMOTE_HOST (имя хоста посетителя),
REMOTE_USER (имя пользователя, если он прошел
авторизацию), REMOTE_METHOD (обычно GET
или POST), PATH_INFO (путь к файлу
веб-страницы), HTTP_USER_AGENT (содержимое
http-заголовка User-Agent), HTTP_REFERER
(содержимое http-заголовка Referer),
HTTP_COOKIE (содержимое http-заголовка
Cookie), HTTP_HOST (имя хоста веб-сайта),
TIME_YEAR (все переменные TIME_* хранят
разбитые на части текущие дату и время),
TIME_MON, TIME_DAY, TIME_HOUR,
TIME_MIN, TIME_SEC, TIME_WDAY,
REQUEST_URI (строка запроса без имени хоста и
параметров запроса), REQUEST_FILENAME (имя файла
из REQUEST_URI), THE_REQUEST (полная
строка запроса в том виде, в котором ее присылает
браузер посетителя). Помимо стандартных переменных можно
проверять содержимое любого http-заголовка:
%{HTTP:Название-Заголовка}.
Условие - это обычное регулярное выражение.
Кроме регулярных выражений существует еще несколько
видов условий (условию может предшествовать символ
!, который трактуется как отрицание):
- =ABC - значение переменной должно быть
лексически равно строке ABC
- >ABC - значение переменной должно быть
лексически больше строки ABC
- <ABC - значение переменной должно быть
лексически меньше строки ABC
- -d - должен существовать каталог, имя
которого совпадает со значением переменной
- -f - должен существовать файл, имя которого
совпадает со значением переменной
- -s - должен существовать файл ненулевой
длины, имя которого совпадает со значением
переменной
- -l - должен существовать симлинк, имя
которого совпадает со значением переменной
- -F - должен существовать файл, имя которого
совпадает со значением переменной, и этот файл должен
быть доступен по внешней ссылке на данный
веб-сайт
- -U - должна быть доступна http-ссылка, имя
которой совпадает со значением переменной
Флагов может быть всего два: OR
(объединение директив RewriteCond по ИЛИ,
как было написано выше) и NC (отключение проверки
регистра аналогично одноименному флагу для директивы
RewriteRule).
И, наконец, примеры применения:
# Пример 1. Жесткий запрет посещений нашего
веб-сайта для робота поисковой системы
Google
RewriteCond %{USER_AGENT}
Googlebot RewriteRule .* - [F]
# Другой
вариант возвращает вместо ошибки 403 (FORBIDDEN) ошибку
404 (NOT_FOUND)
RewriteCond %{USER_AGENT}
Googlebot RewriteRule .* - [R=404]
# Пример 2.
Есть два каталога /home/site/storage1 и
/home/site/storage2, в которых нужно искать
запрашиваемые файлы
RewriteCond
/home/site/storage1/%{REQUEST_FILENAME}
-f RewriteRule (.+) /home/site/storage1/$1
[L]
RewriteCond
/home/site/storage2/%{REQUEST_FILENAME}
-f RewriteRule (.+) /home/site/storage2/$1
[L]
# Пример 3. Если ссылка не найдена на нашем
веб-сайте, отправить посетителя на
www.site.ru
RewriteCond %{REQUEST_URI}
!-U RewriteRule (.*) http://www.site.ru/$1
[R]
# Пример 4. Закрыть доступ к веб-сайту в
рабочее время
RewriteCond %{TIME_HOUR}%{TIME_MIN}
>1000 RewriteCond %{TIME_HOUR}%{TIME_MIN}
<1900 RewriteRule .* - [F]
# Пример 5. Есть
скрипт, раз в сутки производящий оптимизацию базы
данных. Если посетитель зайдет в этот момент на
веб-сайт, то получит ошибку - вместо этого необходимо
показать ему страницу с сообщением о том, что через пару
минут все придет в норму. Оптимизирующий скрипт на время
своей работы создает файл
/home/site/optimizer.pid
RewriteCond
/home/site/optimizer.pid -f RewriteRule .*
/optimization_message.html
# Пример 6. Посетители
веб-сайта авторизуются при помощи стандартной
авторизации (AuthType BasicAuth). Необходимо по ссылке
/home/* показывать содержимое их домашних
каталогов
RewriteCond %{REMOTE_USER}
!="" RewriteCond /home/(%{REMOTE_USER})
-d RewriteRule (.*) /home/%1/$1
Директивы RewriteCond предназначены для
проверки некоторых дополнительных параметров
И в заключение вкратце упомянем еще о
двух директивах преобразования ссылок, которые не входят
в модуль mod_rewrite - это Redirect и
RedirectMatch. Ими можно пользоваться, во-первых,
как упрощенными вариантами директивы RewriteRule,
а во-вторых, в случаях, когда модуль mod_rewrite
по каким-то причинам отсутствует в вашей сборке
веб-сервера Apache. Примеры:
# Обе директивы при "срабатывании" возвращают
редиректы. В качестве замены всегда должна
использоваться абсолютная ссылка
# Обычный
безусловный редирект:
Redirect /news
http://www.site.com/cgi-bin/news.cgi
# Редирект с
подстановкой:
RedirectMatch (.*\.gif)$
http://www.site.com/alt/path/to/gif/files$1
Возможно, на первый взгляд преобразование http-ссылок
с помощью модуля mod_rewrite покажется очень
сложной задачей, но на самом деле это не так: с опытом
придет и понимание, и мастерство. Если вы внимательно
читаете документацию, четко представляете необходимые
преобразования ссылок и тщательно проверяете написанные
вами правила, все будет работать правильно. Иначе и быть
не может, не так ли?
 | Будьте проще – и люди к вам потянутся |
|
Что можно делать для раскрутки собственного веб-сайта, а чего нельзя? Попробуем разобраться.
Целое племя Василиев Пупкиных ночи напролет корпит над магическими таблицами с результатами поиска, пытаясь разгадать секреты Великого Гугла. Их цель — обойти правила и хоть на короткое время привлечь Его внимание к своему сайту… пока жрецы Могущественного не изменят Алгоритм. И все начнется заново.
В погоне за посетителями начинающие веб-мастера готовы идти на все тяжкие, чтобы сделать свой сайт максимально популярным. Почему-то сложилось твердое мнение, что честным путем многого не добьешься. Вот они и стараются применять все новейшие разработки в области спама и... добиваются диаметрально противоположного результата. Рейтинг сайта медленно, но верно падает, и тогда они в попытке спасти ситуацию делают еще одну-две глупости. В результате поисковая машина вообще исключает их из индекса и заносит в чёрные списки. Теперь хоть ходи по улице и кричи, зазывая людей.
Как научиться попадать на первые места в результатах поиска, избегая штрафов? Для начала приведем хит-парад наиболее распространенных заблуждений веб-мастеров.
1. Чтобы помнили...
«Чем чаще я буду напоминать о себе, тем выше поднимется мой рейтинг».
Это такое же заблуждение, как и следующее:
«За чрезмерную регистрацию я буду наказан».
В руководстве Google для веб-мастеров четко сказано, что сайт можно подавать на регистрацию сколько угодно раз, и это не приведет ни к понижению рейтинга, ни к его повышению. При оценке рейтинга поисковики пользуются собственными алгоритмами, учитывая сотни параметров, и время, потраченное на ежедневную регистрацию, лучше направить на что-нибудь более полезное.
Я видел сотни назойливых рекламных объявлений фирм, которые за стандартную цену в 24,99 долл. предлагают регулярный submit вашего сайта — ежедневно или даже через каждые несколько часов. Пустая трата денег!
Другое дело, если вы создаете и раскручиваете новый сайт. Тогда просто необходимо дать поисковой машине знать о себе. Некоторые поисковики предпочитают находить сайты самостоятельно. Но если ваш сайт создается «с нуля», то на него нет и не может быть ссылок с других сайтов, а следовательно, поисковый робот не сможет вас найти.
Существует ряд программ, которые регистрируют сайт и его отдельные страницы на поисковиках. Лучшие, на мой взгляд, две из них: Web Position Gold и Net Promoter. Первая предлагает полный набор инструментов для оптимизации и регистрации сайтов на поисковиках. Вторая – мощнейший пакет программ, позволяющий провести весь процесс раскрутки веб-сайта от и до, то есть от покупки доменного имени до регистрации на поисковиках и отслеживания визитов поисковых роботов. Пакет русифицирован и предусматривает пожизненную техническую поддержку на русском языке. Помните: эти программы ни в коем случае не созданы для спамирования! Они просто значительно облегчают работу и экономят ваше время.
2. Откормимся на ферме
Те же многочисленные фирмы предлагают регистрацию на различном количестве поисковиков – от 100 до 100 тысяч. Что тут скажешь? Неспециалист вряд ли назовет больше 15 поисковых сайтов. В мире едва ли существует сотня достойных внимания поисковиков, а среди них около 50% всего трафика на любом англоязычном сайте делает Google, а на русскоязычном — Яndex.
Так называемые фермы линков (FFA) работают по следующей схеме: на какое-то короткое время там появляется ссылка на ваш сайт, а затем, вытесненная другими регистрациями, пропадает. Когда-то ссылки оставались подолгу, и это могло принести пользу. Но с появлением программ автоматической регистрации среднее время пребывания линка в базе данных сократилось до 10 минут. И все же не исключено, что даже за такое короткое время пребывания в рейтинге ваш сайт будет «замечен» каким-то из «серьезных» поисковых роботов.
3. Метатеги. Глаза не видят, сердце не болит?
Глаза-то не видят, а Гугл все видит да на ус мотает.
Один из способов спамирования — заведомо неверные данные в метатегах. Метатеги существуют, чтобы объяснять посетителям и поисковикам, о чем идет речь на той или иной странице. Если в метатегах объявить одни ключевые слова, а содержание страницы будет другим, то эффект получится, скорее всего, нулевой, а возможно, и отрицательный.
Стараясь сделать информацию как можно более точной, разработчики поисковых машин постоянно совершенствуют систему оценки страниц. Сегодня одними метатегами уже не обойтись. Большинство поисковиков проверят еще и содержание страницы и подсчитают, сколько раз ключевое слово встречается в тексте. Частота встречаемости ключевого слова должна составлять 3-5%, то есть на 100 слов текста ключевое слово должно попадаться как минимум три раза. Этим методом поисковики оценивают релевантность текста, т.е. его соответствие объявленной тематике. Программа Net Promoter содержит очень удобную утилиту оценки частоты встречаемости ключевых слов, которая позволяет проанализировать текст каждой страницы сайта и увидеть то же, что видит и робот. То есть узнать, какие слова можно считать ключевыми для данной страницы и соответствуют ли ключевые слова в метатегах содержанию текста.
4. А не спеть ли мне серенаду?
Лучше не надо. Некоторые веб-мастера включают в метатег ключевых слов фразы на «взрослую» тематику, поскольку они входят в группу наиболее часто искомых терминов. Ну и зря!
Если ваш сайт – новичок, вам ни за что не пробиться к вершине рейтинга по одному из популярных ключевых слов. А тот факт, что люди приходят на сайт с поисковика и потом на него возвращаются, часто автоматически расценивается как неудача при поиске, и сайт теряет баллы. Так что лучше всего ориентироваться на свою целевую аудиторию.
Существует много других подобных способов спамирования, среди которых следует отметить невидимый, или малозаметный, текст. Он сливается с фоном, и посетители, в отличие от роботов, его не видят. Это каменный век интернета; сегодня почти все поисковики наказывают за подобные уловки.
5. И создал я себе дорвей, и увидел, что это хорошо
Те, кто полагает, что создать «настоящую» страницу, которая была бы одинаково интересна и для посетителей, и для роботов, невозможно, любят создавать «дорвеи» (от англ. doorway) – страницы, специально оптимизированные под отдельные поисковики. Конечно, можно воспользоваться дорвеем для быстрого достижения популярности, а уже потом поддерживать наплыв посетителей другими, более традиционными способами. Но создать качественный дорвей способен не каждый. К тому же такую подмену нужно совершать очень осторожно, поскольку роботам знакомы наиболее распространенные методы, которыми пользуются веб-мастера для перенаправления посетителей на настоящую страницу.
6. А у нас на сайте Flash! А у вас?
А у нас нет, поскольку мы хорошо знаем, что ссылки внутри Flash, как и внутри JavaScript и Java-апплетов, роботами почти не индексируется, хотя посетители сайта могут беспрепятственно по ним ходить. Многие крупные компании с помощью красивого дизайна хотят вызвать у посетителей ощущение «солидности» и не собираются отказываться от огромных массивов графики и флэш-анимации, в разработку которых были вбуханы огромные деньги. Их можно понять.
Но круто это выглядит только поначалу. Потом бесконечное ожидание загрузки всей этой яркой мишуры, необходимость устанавливать Macromedia Flash Player и медлительность Java начинают раздражать. Люди хотят видеть предельно четкую информацию об услугах или товарах, которые вы предлагаете, изложенную простым языком и желательно в доступной форме. Это же «хотят видеть» и поисковики.
7. Обо мне — или хорошо, или ничего
«Я могу добиться рейтинга одной только оптимизацией, и ссылки с других сайтов мне вообще не нужны».
Конечно же, это не так. Если ваш сайт цитируют, значит люди нашли на нем что-то интересное для себя. Разработчики поисковых машин это учитывают, и чем больше сайтов содержат линки на ваш сайт, тем выше будет его рейтинг.
Причем учитывается не только количество, но и качество ссылок. Если вы зарегистрируетесь на нескольких из вышеупомянутых машин FFA, это не будет рассматриваться тем же Гуглом как веский аргумент в вашу пользу. Сайты на сходную тематику, напротив, повысят ваш рейтинг. Самый простой способ добиться того, чтобы на вас ссылались, – создать предельно интересный и информационно насыщенный сайт. Люди сами ежедневно будут добавлять ссылки на вас на своих сайтах, и ваш трафик многократно возрастет.
8. Назло кондуктору...
«Вот сейчас я нащелкаю себе рейтинг на поисковике вручную, и народ ко мне валом повалит»...
Некоторые поисковики действительно учитывают количество вхождений на сайт. Но это не значит, что их так легко обмануть. Вас в два счета засекут по вашему IP- адресу и могут серьезно наказать за мошенничество: сайт утратит существенную долю популярности, если таковая была.
9. Всех куплю!
« Прирост популярности, которого мне так не хватает, даст контекстная реклама на поисковике».
Скорее всего, не даст. Тот же Гугл заявляет, что покупка per-per-click рекламы не поднимает рейтинг и не опускает его. Еще одна серьезная машина – Fast, обслуживающая сайт AlltheWeb, недавно опубликовала основные принципы, заложенные в ее поисковые алгоритмы. Из них следует, что спонсированные результаты будут занимать первые места поиска только до тех пор, пока вы будете оплачивать их размещение. Как только спонсирование прекратится, рейтинг сайта возвратится к прежнему значению.
Правда, некоторые исследования показывают, что размещение на первой странице передовых поисковых сайтов все же имеет небольшое положительное влияние на рейтинг. К тому же, если ваш бизнес зависит от количества посетителей, притом желательно целенаправленных посетителей, то есть прямой смысл в покупке именно такой целевой рекламы.
Следует особо отметить так называемые аукционы pay-per-click (с пощелчковой оплатой). Уже само название подразумевает, что вы платите не просто за размещение рекламы, а за количество людей, пришедших на ваш сайт из поисковика. Но почему аукцион? Дело в том, что вы сами назначаете цену за каждое вхождение. Чем больше вы готовы заплатить, тем лучшую позицию ваш сайт получит в результатах поиска. Преимущество данной системы в том, что вы платите за целевую аудиторию. То есть, кликнув на вашей ссылке, человек уже знает, что он там найдет, и, скорее всего, готов за это заплатить. В Рунете лидером аукционов pay-per-click является компания «Бегун», предоставляющая платные позиции на Апорте, Mail.ru, Km.ru и некоторых других сайтах. Среди англоязычных аукционов признанными лидерами являются такие гиганты, как Overture, Google AdWords.
10. Как вы лодку назовете, так она и поплывет
Если в доменном имени содержится ключевое слово, это дает ЗНАЧИТЕЛЬНЫЙ плюс рейтингу сайта. Конечно, хуже, если ваш бизнес ориентируется на русскоязычного клиента – мало кто будет искать название товара в транслитерации. Правда, в этом году появилась возможность регистрировать кирилличные домены. Но в силу ряда технических причин в ближайшем будущем вы вряд ли сможете завести полноценный сайт с кирилличным именем, хотя перспектива многообещающая.
Можно порекомендовать две программы, облегчающие поиск броских доменных имен – Mozzle Pro и Domain Name Checker из того же пакета Net Promoter. Последний, как обещают создатели, в скором времени будет обеспечивать поддержку кирилличных имен.
Итак, стоит ли жульничество усилий? Принесут ли уловки желаемый результат и не слишком ли много поставлено на карту? Смотря чего вы добиваетесь. Если нужен временный успех, то — да. Если это ваше хобби, опять же, ответ положительный. Но если вы стремитесь к постоянно высокой посещаемости и наплыву новых и новых клиентов, то внимание следует сосредоточить на следующем:
• Простой дизайн
• Понятная навигация
• Хорошо написанный, богатый ключевыми словами текст
• Заголовки и метатеги, которые помогают ориентироваться на страницах
Поисковик, как и любой посетитель сайта, в первую очередь ищет качественную информацию, и чем больше, тем лучше. Вот разработчики и стараются, чтобы люди находили то, что они ищут, а не то, что им пытаются «скормить». Поэтому к вопросу популярности следует подходить с позиции здравого смысла. Будьте проще – и люди к вам потянутся.
Юрий Коберский закончил Львовский национальный университет по специальности «английская филология». Работал на львовской дизайнерской студии «Птаха». Профессионально занимается раскруткой веб-сайтов.
 | Рисуем баннеры |
|
Посвятим-ка мы немного времени баннерам и поразмышляем на тему: как сделать баннер более эффективным? Поговорим о слоганах и воздействии баннера на читателя.
Баннеры используются на страничках в качестве рекламы других ресурсов и, как правило, их дизайн никак не связан с содержимым странички и оттого смотрится несколько отчуждённо. Правда, есть одно исключение — локальные баннеры. В этом случае мы можем оформить их, используя мотивы дизайна основного сайта.
При создании сайта необходимо учитывать наличие баннеров и соответственно выстраивать дизайн.
На просторах Рунета популярны несколько типоразмеров баннеров, самые распространенные из которых — это 468*60, 100*100 и 88*31 (обычно называемые кнопками). Баннеры остальных размеров применяются гораздо реже и обычно только для локальных баннерных сетей (125*125, ушки на Lenta.Ru и т.п.)
Кроме отличия в размерах, баннеры могут быть разного типа:
- графические
- html-баннеры
- flash-баннеры
Два последних типа достаточно сложные и специфические. Мы будем разбираться с классическим графическим баннером размером 468*60 пикселей.
Применение баннеров в качестве рекламного носителя в Сети накладывает на него несколько ограничений. Основное из которых — это «вес» баннера в килобайтах. В популярных баннерных сетях максимальный вес лимитируется цифрами от 10 до 15Кб. Я принимаю за базовую цифру в 12Кб. Если вес баннера больше, то он считается тяжелым и для рекламы непригоден, т.к. время, требуемое для загрузки, превысит среднее время просмотра странички, — проще говоря, баннер не успеет загрузиться.
Для уменьшения веса баннера есть несколько приёмов, но о них мы поговорим позже. А пока рассмотрим форматы графических баннеров. Их два и они не отличаются от форматов графики на основной странице — соответственно это наша парочка — GIF и JPEG. Формат GIF позволяет создавать анимированные баннеры, эффективность которых, по сравнению со статическими, выше примерно в полтора раза.
При выборе формата баннера нужно придерживаться тех же принципов, что и при создании основной графики на страницах, — если изображение фотографическое, то выбираем формат JPEG. Во всех остальных случаях более подходящим будет GIF. Если баннер анимированный, то выбора нет — только GIF.
Немного отвлечёмся и поговорим о баннере как о носителе рекламы. С этой точки зрения он очень похож на рекламный плакат. И на то, и на другое посетитель для просмотра тратит не более 3–5 секунд, и в том, и в другом случае реклама занимает относительно большое пространство, и в том, и в другом случае нужно выражать мысли наиболее чётко и образно.
Основными элементами баннера с точки зрения рекламы являются слоган и визуальный образ. К разработке и того, и другого следует переходить после уяснения задач баннера. Нет ничего хуже, чем баннер, рекламирующий не то, куда он ведёт. В этом случае пользователь, нажавший на баннер, оказывается обманутым, и вместо привлечения посетителя мы получаем обратный эффект — вряд ли посетитель придёт ещё раз.
Баннеры можно подразделить на имиджевые и обычные. Имиджевые отличаются от обычных тем, что используют в дизайне элементы основного сайта, цвета и/или логотип. В отличие от обычного баннера, имиджевый работает не только при нажатии, но и само его присутствие раскручивает марку, т.к. баннер однозначно узнаваем и легко сопоставляется с конкретной фирмой или сайтом.
Любой хороший баннер — это некая идея, которая должна заинтересовать посетителя и зажечь в нём желание сходить по ссылке. Но нужно понимать, что любой баннер предназначен для определённой аудитории (которая совпадает с потенциальной аудиторией рекламируемого сайта).
Начинать создание баннера необходимо с формулировки того, что же рекламирует баннер, и придумывания хорошего слогана. Это очень важно! Плохая фраза испортит самый распрекрасный образ. Придумав слоган, уже можно подбирать иллюстрирующий его визуал.
При измерении эффективности баннеров пользуются термином CTR — измеряемого в процентах и выражающего отношение числа показов баннера к числу нажатий на него. Это не единственный показатель, но наиболее известный. Для обычных баннеров он составляет от 0.5% до 1.5%. Большие значения присущи обычно только порноиндустрии (там может доходить и до 15%).
А теперь займёмся креативом — будем придумывать идею, слоган и подбирать подходящий образ.
Технические соображения
При создании баннера нужно учитывать, что просматриваться он будет в чуждом окружении, и мы ничего не будем знать о страничке, на которой он окажется, и не сможем предусмотреть цветовой гаммы. Поэтому нам необходимо явно обозначить границы баннера — по его периметру нужно обязательно очерчивать чёрную рамку шириной в один пиксель. Кроме того, у баннера не должно быть прозрачного фона — обязательно сплошной (но не обязательно одноцветный)
Художественные соображения
Баннер должен нести некую идею, иначе он будет непривлекателен, ему будет нечем развлечь, привлечь, заинтриговать потенциального посетителя. Хороший баннер можно сравнить с головоломкой — она не сразу решается, но, найдя ответ, посетитель получает положительные эмоции и запоминает.
Что такое загадка в дизайне? Вы когда-нибудь видели такие картины, вглядываясь в которые снова и снова ты открываешь для себя что-нибудь новенькое? Это тот самый случай. Дизайнер как бы придумывает загадку, а потом ее «шифрует», зритель же постепенно открывает эти загадки (в большинстве случаев на подсознательном уровне), а в качестве разгадки чаще всего выступает слоган. Если мы используем анимированный GIF, то возможностей больше, и мы можем разбить загадку на несколько кадров и приоткрывать её постепенно…
За основу мы возьмём баннер с применением визуала (так называется фотографический или рисованный образ, который выступает в композиции как центральный элемент). И будем считать, что каждый баннер состоит из следующих частей:
- Слогана
- Визуала, иллюстрирующего слоган (вступающего в игру со слоганом)
- Цветовой гаммы (для имиджевых баннеров цвета часто совпадают с цветом рекламируемого сайта)
- Дополнительного текста (адрес странички, пояснительный текст)
- Дополнительных элементов оформления, подчёркивающих основную мысль и стиль баннера. В случае имиджевых баннеров очень удобно сделать один шаблон и, подставляя разные слоганы и визуалы, получить целую серию баннеров.
Сделать эффективный и красивый баннер не так легко и может запросто занять несколько часов. Запомните одно правило — если созданный баннер Вам не нравится, то, вряд ли он понравится другим! Впрочем, это правило относится вообще к любой творческой деятельности. ;)
Давайте подытожим наши рассуждения и перечислим этапы, которые нужно пройти, чтобы создать качественный баннер:
- Для начала необходимо выяснить, какую цель мы преследуем, создавая данный баннер. А для этого зададим себе несколько вопросов о том, что рекламирует этот баннер и кого он может потенциально заинтересовать. Поставим себя на место посетителя, который ищет рекламируемый нами сайт, и спросим себя, что бы мы хотели увидеть на баннере?
- Скрипт авторизации может каким-нибудь образом передать имя пользователя другим скриптам. Распространено во многих www-чатах - для того, чтобы отличить, где чье сообщение идет, рядом с формой типа text для ввода сообщения, пристраивается форма типа hidden, где указывается имя пользователя. Тоже ненадежно, потому что хакер может скачать документ с формой к себе на диск и поменять значение формы hidden. Некоторую пользу здесь может принести вышеупомянутая проверка HTTP_REFERER - но, как я уже говорил, никаких гарантий она не дает.
- Получив ответы на предыдущие вопросы, необходимо сформулировать идею или сценарий (это уже в случае с анимированным баннером).
- Наконец, подходим к придумыванию слогана, который наиболее точно выразит нашу идею или сценарий (придумать нужно обязательно несколько вариантов — минимум 10–15). Остаемся на этом этапе до тех пор, пока придуманный слоган нам самим не понравится. :)
- Графическая часть — вот теперь можно запускать PhotoShop и реализовывать идею в картинке. Подбирать из клипарта или самому рисовать подходящий под слоган визуал.
- Делаем первую версию баннера, потом ещё одну, и ещё одну, и ещё одну, пока… не начнёт очень сильно нравиться.
- Окончательно оптимизируем баннер.
 | Долбаные баннеры |
|
Сегодня разговор пойдёт о вреде и пользе баннеров, о том, как с ними жить и бороться.
Первый баннер в сети
Первый баннер в сети появился в октябре 1994 года. И поскакал... ("Hot Wired signed its first ad contract with AT&T on April 15, 1994, and the site launched on October 27, 1994." ). Кстати, первый баннер был статичным.
Польза или вред?
Конечно, можно долго рассуждать о том, что реклама - двигатель торговли.
Что без рекламы не бывает независимых СМИ. Что баннеры кормят не только их производителей (дизайнеров) и продвигателей (рекламные агенства, системы баннерного обмена и пр.), но и размещателей (сайты). Что без баннеров интернет был бы совсем другим, да и вопрос, был бы вообще.
Да что там греха таить - ваш покорный слуга в своё время заработал несколько сотен долларов, проектируя UI для навороченной системы баннерной онлайн-статистики.
Но речь сейчас вовсе не об этом. Заметьте, в данной цепочке лиц, кому выгоден баннер (от дизайнера до сайтовладельца), отсутствует главный персонаж, для которого и во имя которого, по существу, должно быть всё -- посетитель, пользователь.
Так вот. Баннер для пользователя -- враг номер один.
Хороший баннер -- мёртвый баннер
Казалось бы, реклама на ТВ или в прессе -- дело привычное, чем хуже интернет?
Дело в том, что подавляющее большинство баннеров -- анимированные. А это сильно раздражает, отвлекает внимание на физиологическом уровне. Такова природа человеческого глаза -- движущиеся объекты привлекают внимание, поскольку эволюция приучила: в движущемся объекте может быть либо угроза, либо цель охоты. И рекламщики бессовестно эксплуатируют эту физиологию. Если страница усеяна многчисленными переливающимися, мигающими, сияющими и т.п. объектами, то выполнять основную пользовательскую задачу (например, искать нужный навигационный элемент или просто читать текст) крайне утомительно, получается быстрый психофизиологический перегруз пользователя.
Достоинство печатной продукции -- она статична. Даже реклама на ТВ -- штука гуманная, т.к. по сути у пользователя один объект -- видеоизображение. Телереклама легко вписывается в задачу пользователя -- воспринимать видеоряд.
Представте себе, что по экрану телевизора одновременно крутят десяток рекламных роликов -- каждый в своём окошечке. Надолго ли хватит зрителя?
Если заняться футуристическим фантазированием, то легко можно допустить, что преимущественно статичная на сегодняшний момент наружная реклама в виде фанерных щитов в скором времени будет повсеместно заменена на широкоформатные дисплеи. Что произойдёт? Каюк дорожному движению?
Кстати, на дороге уже повсеместно распространились щиты, на которых умельцы вставляют проблесковые маячки: болтается свеча зажигания с искоркой, или на изображённых автомобилях вдруг начинают подмигивать подфарники... Я бы на месте ГАИ штрафовал бы таких рекламщиков нещадно.
Фантазируя дальше, можно предсказать, что газеты трансформируются в тонкие дисплеи, которые можно будет комкать, сворачивать в трубочку, складывать в шестнадцать раз, рвать на куски и ходить с ними в сортир... Естественно, контентом подобные газеты будут заполняться по принципу веба -- беспроводно-онлайново. И каждый самый малюсенький рекламный блок начнёт подмигивать и переливаться... Каково будет читать такое?
Эффект баннерной слепоты
Учёные юзабилисты давно обнаружили следующий факт: у пользователей при работе с вебом вырабатывается характерная привычка не обращать внимания на любые визуальные элементы, похожие на рекламу. Этот эффект объясняется очень просто: так человек выстраивает для себя барьер, предохраняющий от психофизиологической перегрузки.
Отсюда вывод первый, для веб-строителей:
Никогда не делайте интерфейсных или информационных объектов, похожих на рекламу -- пользователи их не заметят.
Вывод второй, для рекламодателей:
Эффективность баннерной рекламы стремится к нулю. Баннеры вызывают в первую очередь раздражение посетителей.
Таким образом, баннерная реклама теряет свою информационную компоненту, при этом раздражающая компонета остаётся.
Частным следствием эффекта баннерной слепоты явился успех чисто текстовой рекламы, оформленной в виде гиперссылок -- пользователи привыкли "сканировать" гиперссылки на предмет ключевых слов.
Флеш-интервенция
Несмотря на то, что когнитивно опытные пользователи не обращают никакого внимания на рекламу, человеческий организм всё-таки вынужден тратить физиологические ресурсы на построение такого барьера, и утомление всё-таки происходит.
До определённого момента у пользователя был эффективный инструмент борьбы с мельтешением на экране: кнопка Stop в броузере (клавиша Esc) останавливала всю гифовую анимацию и можно было спокойно читать текст или разбираться в навигации в пределах одной страницы. Кроме того, можно было глобально отрубить гиф-анимацию, расчекав Internet Options/Advanced/Multimedia/Play animation.
Правда, умельцы-баннероклепатели и в такой ситуации придумали способ поиздеваться над посетителем -- делали текст или картинку на статичном баннере размытым -- и пользовательский глаз невольно напрягался, чтобы сфокусировать изображение, но чёткости таким образом добиться не получалось, что приводило к психической деструкции пользователя.
Но технологии не стоят на месте: человек всегда ухитряется против любого оружия придумать противооружие. В последнее время стало модными использование swf-баннеров, против которых пользователь зачастую безоружен.
Несмотря на то, что во флеше можно построить глубокий и развитый интерактив, пользователя, как правило, интересует только одно -- как отключить эту болтающуюся заразу.
Флешёвая реклама, кроме пресловутых анимационных баннеров, приобрела и другую разновидность -- это ублюдские кляксы-лягушки, выскакивающие на пользователя при открытии страницы и загораживающие своим жирным телом полезный контент. Такая жаба предлагает пользователю поиграть в увлекательную игру "Попробуй отключи!", при этом создатель такой рекламы обычно старается поглубже запрятать выключающую кнопочку, сделать её незаметнее.
Флеш-баннеры и лягушки - явное надругательство над пользователем, бессовестное глумление над несчастным, ни в чём не виноватым посетителем, попрание его прав, свобод и доброй воли. И дело даже не в морально-психологическом аспекте, это уже физиологическое унижение.
Можно, конечно, попытаться на каждом флешёвом баннере вызвать контекстное меню и расчекать опцию Play, но это не всегда спасает от анимационных эффектов.
Что же делать?
Ну, не подумайте, что я совсем против баннерной рекламы. Например, если рекламные площади на сайте приносят существенную сумму в статью доходов компании, то от такого сладкого куска тяжело отказаться.
Надо просто строже предъявлять требования к публикуемым рекламным материалам. Минимум анимации, идеал - статичные баннеры.
Не следует забывать про хорошо себя зарекомендовавшую текстовую рекламу (которая не теряет своих свойств и при отключённой графике в броузере).
Кроме того, существуют и другие, отличные от баннерной рекламы, но не менее эффективные способы пиара.
Например, проект Usability.Ru вообще обходится без баннерной крутилки. С одной стороны, это принципиально некоммерческий, академический проект, с другой сторны, экономятся печатные площади, щадятся пользовательские нервы и глаза. Тем не менее проект достаточно популярный (по меркам проектов, посвящённых разработке софта и веба).
В чём секрет?
1. Удачно выбранный адрес сайта
2. Регистрация на поисковиках
3. Оригинальный и насущный контент
4. Размещение ссылок на сайт в тематических подборках ссылок
5. Обмен ссылками (не баннерами!) с профильными сайтами
6. Сервисы, востребованные посетителями
7. Неинтернетные публикации (СМИ)
Обрезание SWF-баннеров
После прочтения моей статьи про баннеры известный программист Игорь Нестеров написал на коленке за 10 минут скриптик, который убивает SWF-баннеры на открытой страничке броузера по дополнительной тулбарной кнопочке IE.
Поскольку код довольно сырой, нужны добровольцы-тестировщики, которые бы проверили и сообщили мне, на каких сайтах код не работает.
Код можно взять тут.
1. Распаковать зип в любую дирректорию.
2. В файле с расширением .reg подправить пути к распакованным файлам, соблюдая двойные слеши
3. Запустить файл с расширением .reg
4. Закрыть все окна IE
5. Открыть новое окно IE
6. Откастомайзить тулбар, добавив кнопочку "No Flash!"
7. Использовать эту кнопочку для убивания флеш-баннеров.
8. Там, где таковые не убиваются, присылать мне урлы.
Раздел "Веб-мастеру". Веб-кодинг:
 | Строительные кирпичики для сайта |
|
Вы сделали домашнюю страничку и месяц, квартал или год любовались ею на каком-нибудь бесплатном хостинге. За это время она стала удобной, нарядной, число хостов выросло до нескольких сот человек в неделю, а то и в день, — настала пора задуматься о чем-то более серьезном. Посетители требуют чаще обновлять страничку, открыть новые форумы и создать некое подобие «живых журналов», — а может, вы сами видите во всем этом необходимость. Выход очень простой: воспользоваться языком веб-программирования PHP и СУБД MySQL, с помощью которых можно все. Или почти все…
Новая жизнь сайта
Бесплатный хостинг, на котором до недавнего времени размещался ваш сайт, — это, как говорится, очень сердито. Обязательные к показу банеры портят внешний вид веб-странички, а небольшой объем доступного места не дает вам возможности реализовать все свои мечты. Средства для администрирования обычно минимальны. Так что первый шаг — переезд. Качественный и недорогой хостинг на 50–200 Мбайт найти сегодня нетрудно. Стоит это удовольствие $5–20 в месяц, причем сюда уже включена поддержка PHP и MySQL — пожалуй, главных инструментов, позволяющих добиться всего того, о чем говорилось выше. Регистрация же нового домена в зоне ru, как мы уже писали, — $20, а с учетом скидок у хостеров может доходить и до нуля.
Но! Смена хостинга — это далеко не все. Вам, возможно, придется изменить внутреннюю структуру сайта и упростить его администрирование. На эту нелегкую работенку вы потратите день, два, неделю, месяц, но зато потом… потом ваш веб-ресурс станет сказкой. Его проще поддерживать: текст и изображения будут обновляться несколькими щелчками мышки, появятся дополнительные сервисы, а вы сможете быстро подключать и отключать их. Сайт станет дружественнее не только для посетителей, но и для его хозяев. Так, для получения информации — от банальной статистики посещений до сводной информации о вкусах посетителей сайта — потребуется всего пара щелчков мышки. Как добиться всех этих результатов? Надо, повторюсь, воспользоваться PHP и MySQL!
Первое знакомство
Как и в любом другом языке программирования, в PHP есть полный набор средств — можно вычислять значения, сравнивать величины между собой, циклически выполнять команды и т.д., — позволяющий реализовать любой алгоритм, к примеру, из знаменитого многотомного труда Д. Кнута «Искусство программирования для ЭВМ».
Хранить текстовые и числовые значения можно в переменных — каждая переменная начинается со значка $, после которого следует английские буквы, цифры и некоторые спецсимволы (например, подчеркивание «_»). Первый символ после значка $ — это буква или символ подчеркивания «_». Так, неверным считается идентификатор $1text, но правильными $_1text, $text1, $text_1. Идентификаторы (иначе имена переменных, функций) PHP чувствительны к регистру, и переменные $myvar и $myVar будут различными.
Переменными являются и передаваемые через адресную строку браузера параметры. Гуляя по Сети, обратите внимание на ссылки вида http://<сайт>/index.php?<переменная>=<значение>, с помощью которых файлу index.php передается соответствующее значение. Несколько параметров объединяются символом & (логическая операция «И»): index.php?action=view&id=10. Этот прием пригодится и при создании вашего сайта (например, о кино), так что возьмите его на вооружение.
Одними переменными, впрочем, сыт не будешь, не менее важны и другие конструкции языка. Так, оператор if (<условие>) {<часть-then>} else {<часть-else>} выполняет блоки команд в зависимости от условия. Цикл while(<условие>) {<блок команд>} исполняется, пока заданное условие истинно, — с его помощью можно перебирать записи таблицы. Для вывода значений на страничке есть инструкция print, с ее помощью выводятся значения переменных и текстовые строки (в кавычках). Пригодится и знание самого HTML — не удивляйтесь. PHP так тесно интегрирован с HTML, что вы можете чередовать теги и команды языка. Громоздкие конструкции, подобные print “<table width=100><tr><td> <p><b>Столбец 1</b> </td></tr> <tr><td> <p align=center>$sgenre </td></tr> </table>”, будут встречаться вам довольно часто. |
Постигая PHP
PHP — относительно простой, Си-подобный язык, с его помощью можно проводить вычисления, обрабатывать строки, даты и массивы, создавать, открывать и изменять файлы, обмениваться информацией с веб-формами, управлять базами данных и т.д. Доступны в нем и другие небезынтересные средства: сеансы, переменные Cookie, шифрование, безопасность и пр. Кроме того, PHP — легкорасширяемый язык. Существуют специальные модули, позволяющие работать с графическими изображениями, PDF-файлами, Flash-роликами и т.д.
Программы на PHP располагаются в файлах с расширением .php, .php3 или .phtml (использовать можно любое — какое больше понравится; что, впрочем, зависит от настроек веб-сервера). Каждый такой файл — это обыкновенный HTML-документ с «вкраплениями» PHP-команд.
Структура HTML-документа (лучше говорить — программы), надеюсь, вам хорошо известна: в начале находится заголовок <head></head>, в нем описываются мета-теги, стили и JavaScript-сценарии, затем в <body></body> — основной контент. PHP-код заключается в специальные теги <?, ?>. Так, вывести в заголовке странички текущую дату позволяет следующий код: <title><? print «Сегодня: ». date(«d/m/Y»); ?></title>.
Каждая инструкция PHP завершается точкой с запятой, а блоки команд помещаются в фигурные скобки {}.
Поиск в Сети можно начать с легко-запоминающейся ссылкой www.php.net. Это официальный сайт разработчиков PHP, на котором находится документация по командам и функциям языка. Многие темы сопровождаются полезными комментариями и советами посетителей сайта. Кроме того, из раздела links легко добраться и до других веб-ресурсов, посвященных PHP, MySQL и вообще программированию в Сети.
На www.alt-php-faq.org расположен огромный сборник вопросов и ответов. Там вы узнаете, как устанавливать и настраивать PHP и MySQL, как обрабатывать данные форм, как использовать стандартные и дополнительные средства языка и т.д.. Англоязычный веб-ресурс codewalkers.com рассчитан на опытных PHP-разработчиков. Хотя раздел Tutorials этого сайта с материалами о поиске, проверке вводимых данных и создании специальных модулей, к примеру для crontab (исполнение программы по расписанию), будет полезен и начинающим.
В русскоязычной части Сети число сайтов, посвященных PHP, невелико. Стоит обратить внимание на сайты www.phpru.net и www.phpclub. net, где есть множество примеров, статей и готовых программ. Впрочем, несмотря на обилие документации в Сети, вопросов о веб-программировании не становится меньше. На некоторые из них вы, возможно, найдете ответы в этой статье, но начнем мы знакомство с PHP с того необходимого минимума, что понадобится нам для создания программ.
БД — это просто
Настала пора поговорить о базах данных. Вместе с положенными мегабайтами на платном хостинге вы получаете в свое распоряжение и БД. Ее имя обычно совпадает с именем домена, и если сайт называется mycoolsite.ru, то база данных — mycoolsite. Некоторые хостеры, впрочем, позволяют менять это имя или создавать несколько баз данных, но обо всех этих тонкостях лучше узнать из раздела техподдержки.
База данных состоит из нескольких таблиц, где хранится вся информация: текст, числа, даты, строки и двоичные данные. Однако что такое таблицы? Работая с документами Microsoft Office, вы, думаю, не раз сталкивались с таблицами Excel, а возможно, и с таблицами Access. Таблицы MySQL — почти то же самое: те же строки (записи), те же столбцы (поля). Но если Excel допускает вольности при вводе данных (в первую строку первой колонки можно ввести текстовое значение, во вторую — дату, в третью — графическое изображение), то подобные «шалости» с MySQL недопустимы. Типы и форматы значений, которые можно хранить в каждом столбце (поле), задаются при создании таблицы. И если вы описали текстовое поле длиной 64 символа, то даже и не пытайтесь сохранить в него 200-символьную строку — часть данных будет утеряна.
Создаем таблицы
Теперь вы имеете представление о том, что такое PHP и как подключаться к БД. Хотя пока еще не созданы таблицы, каковых, например, для сайта о кино потребуется три штуки.
В таблице films находится каталог фильмов с указанием названия, режиссера, жанра, ссылки на графическое изображение обложки диска и краткой аннотации. Связанная с ней служебная таблица genres содержит список жанров. В третьей таблице — reviews — тексты рецензий с указанием автора и даты публикации.
Всю информацию (несмотря на то, что пока не введено ни одного символа!) мы «раскидали» по трем таблицам.
Какие бывают запросы?
Что можно делать с таблицами? Да все, что угодно. К примеру, отбирать, сортировать и группировать записи, изменять, удалять или добавлять табличные данные.
Начнем с выборки — команды select. В самом простом ее варианте через запятую указываются необходимые поля. Значок «*» (звездочка) означает, что в итоговую выборку попадают все поля.
Оператор where ограничивает выборку определенными условиями, которые задаются, в общем-то, по тем же правилам, что и условия в команде if: поля можно сравнивать, а в сложных запросах непременно присутствует операции and (И), or (ИЛИ). Так, чтобы получить список фильмов Спилберга из коллекции, надо выполнить запрос select * from films where director=”Спилберг”. Для сортировки по названию фильма (поле title) к запросу добавляется инструкция order: select * from films where director = “Спилберг” order by title. Сортировать строки таблицы в обратном порядке позволяет опция desc: select * from films where director = “Спилберг” order by title desc. Замечу, при расстановке табличных строк в обратном порядке опцию desc надо задавать для каждого поля в отдельности:
…order by pdate desc, title desc, duration desc.
В завершении небольшой совет: стремитесь к простоте и компактности кода. Разделяйте PHP-файлы на модули, объединяя их командой include. Каждый такой модуль отвечает за свою задачу: вывод банеров, меню, новостей, списка фильмов, списка рецензий и т.п. Если нужно что-то изменить, скажем, количество отображаемых новостей или последовательность «блоков» на главной странице, достаточно внести изменения в один-два файла. В общем, делайте все, чтобы упростить себе работу и снизить шанс на ошибку.
За «общение» PHP с MySQL отвечают несколько функций, позволяющих установить соединение, выбрать базу данных, исполнить SQL-запрос (SQL — язык структурированных запросов) и получить результат. Хотя прежде нужно инициализировать переменные $host (хост-узел), $dbname(имя базы данных), $user (имя пользователя или логин) и $password (пароль доступа). Замечу, эту информацию предоставляет вам хостинг-провайдер. $result = mysql_connect($host, $user, $password) or die(“Could not connect : “ . mysql_error()); $result = mysql_select_db($dbname) or die(“Could not select database”); // создаем запрос и передаем его MySQL $query = “select * from mytable”; $result = mysql_query($query) or die(“Query failed : “ . mysql_error()); // теперь анализируем результаты… // …число записей в таблице $numrows = mysql_num_rows($result); // …строка таблицы $line = mysql_fetch_array($result, MYSQL_ASSOC); Обратившись к конкретному полю по имени или порядковому номеру конструкцией $line[title], можно узнать значение поля. PHP не бьет тревогу, если соответствующего поля в таблице нет, — возвращается пустая строка. |
Раздел "Веб-мастеру". Обмен ссылками:
 | Новые объявления |
|
Данная рубрика создана для помощи веб-мастерам. Здесь публикуются объявления по поводу обмена ссылками/кнопками. Если вы хотите опубликовать свое объявление - заполните специальную форму, находящуюся в конце страницы, и ваше объявление будет опубликовано не только в ближайшем номере Эбаута, но и на mostinfo.net и в рассылках этого сайта.
Название: Юридическое агентство ПАРИТЕТ Описание: Юридическое агентство ПАРИТЕТ осуществляет весь комплекс услуг по регистрации, ликвидации, лицензированию деятельности юридических лиц, а также по продаже готовых фирм с лицензиями. Посещаемость: 30 Условия обмена: страница ссылок - Контактное лицо: Дмитрий
Название: SiteStyle - веб дизайн Описание: SiteStyle.ru - это создание веб сайтов и веб дизайн, разработка дополнительных элементов, работа над сложными проектами и порталами. Продвижение сайтов в интернете дает толчек развития бизнеса. Посещаемость: 20 Условия обмена: страница ссылок - Контактное лицо: Алексей
Название: Электронная газета "Без купюр" Описание: неформальная, независимая газета, предоставляющая возможность всем талантливым авторам из провинции опубликовать в сети публицистику, стихи, прозу, рисунки, фото, музыку Посещаемость: 50 Условия обмена: страница ссылок - Контактное лицо: Вадим
Название: Студия "Батьки" Всё о 2D графике, веб-дизайне и анимации Описание: Всё о 2D графике, веб-дизайне и анимации. Этот сайт посвящён 2D графике: "Macromedia Flash, Photoshop, Corel Draw, Macromedia Director, рисованию манги и анимэ". Game Creating: "Game Maker и немного 3D&quo Посещаемость: 100 Условия обмена: страница ссылок - Главная Контактное лицо: Евгений
Название: Nomore.ru - The club of alternarive culture Описание: Клуб альтернативной культуры. Клуб для всех ниформалов! Посещаемость: чел. в день Условия обмена: страница ссылок - Контактное лицо: {Virus}
Название: Фирма МС - оптовая торговля отделочными материалами Описание: Виниловый сайдинг Gentek, кровельные битумно-волокнистые листы Ondura, фасадные панели Nailite с фактурой "под камень", "под кирпич", "Дранка", металлочерепицa - RANNILA, профнастил, металло Посещаемость: 100-500 Условия обмена: Каталоги или Стротельный софт Контактное лицо: Дмитрий
Название: Imaginations - Cool Wallpapers Описание: Высококачественные эксклюзивные фото: фильмы, актёры, города, реки, ландшафт, животные, музыка... Также представлена большая коллекция логотипов и автогалерея, целый раздел сайта посвящен марке БМВ Посещаемость: 100чел. в день Условия обмена: сайты развлекательного направления Контактное лицо: Юрий
Название: Самый свежий варез Описание: Софт,музыка,фильмы,железо,freeicq,приколы и так далее Посещаемость: 100 Условия обмена: http://warezok.net.ru Контактное лицо: Олег
Название: Недвижимость СПб Описание: Вся недвижимость Санкт-Петербурга и области. Посещаемость: 50чел. в день Условия обмена: Текстовые ссылки или кнопки в разделе "Партнеры", схожая тематика. Контактное лицо: Армен
Название: Недвижимость Европы Описание: Сайт по недвижимости Западной Европы Посещаемость: 100 Условия обмена: страница ссылок - Контактное лицо: Денис
Название: Бизнес-Партнер - Ваш Надежный Партнер Описание: Качественная бизнес-информация теперь доступна всем! Все подробности на сайте. Посещаемость: 30-50 Условия обмена: страница Наши Партнеры Контактное лицо: Беляйкин Артем Владимирович
Название: Графика и дизайн Описание: Учебники по Adobe Photoshop 6 -7, ImageReady 7, Illustrator, Macromedia Flash MX, Freehand, Ulead Gif Animator 5, Corel Draw 10, Corel Photopaint 9, 3D Studio Max, Swish 2, Дизайну, трюкам в Photoshop и Flash Посещаемость: 500 чел. в день Условия обмена: Текстовая ссылка на половине страниц сайта (>2000) Контактное лицо: Pixel
Название: Российский Delphi-Портал Описание: GoldFaq.ru - Российский Delphi-Портал - Форум, статьи, исходники, компоненты, учебники, faq, секреты,resource, upx, ASPack Посещаемость: 200 Условия обмена: ИЦ выше 30 + ссылки на всех страницах + ваш сайт должен быть связан с программированием + на платном хостинге :) Контактное лицо: ner0x
Название: WebMasteram Описание: WebMasteram.Net.Ru - портал для вебмастера: HTML, CSS, JavaScript, PHP, Perl, Python, Flash, вебдизайн, раскрутка, хостинг, Soft для web-мастера, ClipArt, электронные оффлайн учебники и журналы - все от А до Я! Посещаемость: 150 / ИЦ 70 Условия обмена: ИЦ и посещаемость на ровне или выше Контактное лицо: JOns
Название: Фентези-проект Мир Трех - создание фэнтези мира Описание: Для тех, кому лавры Толкиена и иже с ним не дают спать по ночам. Проект, где любой может попробовать написать произведение, действие которого разворачивается в описанном условиями фэнтези-мире Посещаемость: 60-70 чел. в день Условия обмена: страница ссылок - http://newworld.otas.ru/links/?m=other Контактное лицо: Воден
Название: AM-Bridge: Сайт для настоящих мостовиков Описание: Сайт для студентов (а также, аспирантов, абитуриентов и всех остальных), занимающихся... мостами. Электронный off-line журнал, учебные пособия, уроки работы в программе AutoCAD, фото мостов с описанием... Посещаемость: 60 чел. в день Условия обмена: Текстовые ссылки или кнопки в разделе "Партнеры" ("Ссылки"). Возможны и другие варианты. Контактное лицо: Alexander
Название: мануальная терапия доктора Вячеслава Пестрикова Описание: Сайт мануального терапевта Пестрикова В.А., работающего в самом прогрессивном направлении современной медицины - Прикладной Кинезиологии, позволяющей лечить практически любое хроническое заболевание путем общения с телом Посещаемость: 50чел. в день Условия обмена: страница ссылок - http://psdoc.boom.ru/ssilka.html Контактное лицо: Вячеслав
Название: www.kbservice.ru Описание: Автотехцентры КБ Сервис:ремонт лакокрасочного покрытия кузова и бампера Посещаемость: 150 Условия обмена: страница ссылок - Контактное лицо: web
Название: Мегатех™ - GSM-сигнализации, Терморегуляторы, Реле контроля фаз Описание: Предприятие "Мегатех" - производит терморегуляторы, охранные gsm-сигнализации, реле контроля фаз, устройства защиты электродвигателей, ТЭНы и гибкие ленточные нагреватели и др. Посещаемость: 30-40 чел. в день Условия обмена: строительство, прборостроение, быт Контактное лицо: Виктор Изюмов
Название: Каталог сухих строительных смесей Описание: Каталог сухих строительных смесей. Технические описания, инструкции, порядок работ, продажа. Реставрация бетонных и каменных лестниц, теплые полы "под ключ" с гидроизоляцией, наливные полы, кафельные работы, об Посещаемость: 250 чел. в день Условия обмена: строительна тематика Контактное лицо: Виктор Изюмов
Название: Odi: Каталог сайтов и объявлений Описание: Odi - это каталог с градаций по ~7000 тематическим и географическим разделам. Объявления являются отдельными HTML страницами, на которые посетители переходят из поисковых систем. Доступен учет поисковых фраз Посещаемость: 1000-1500 чел. в день Условия обмена: Разместить объявление Контактное лицо: Олег Одинцов
AboutPC+: Форма обмена ссылками (отправляется по e-mail) |
|