Роман Духанин
winner@2winners.com
http://www.2winners.com/
Для кого предназначена эта статья - для веб разработчиков, для
которых реально, что вся раскрутка сайта, которая ему (сайту) нужна, заключается
в достижение высших позиций в наиболее популярных поисковых машинах по
интересующим ключевым словам, ну и для остальных работников рекламы в интернете
(для общего развития, так сказать :-)
ОК. Сразу к делу - как известно, не все еще люди научились пользоваться
правильными поисковыми машинами типа Google или Yandex, многие (видать,
по-старинке) продолжают использовать для поиска в Интернете поисковики
НЕправильные. В чем различие между правильным и НЕправильным поисковиком?
Навскидку, оных различий много, но одно из основных - это то, что НЕправильные
поисковые машины НЕ индексируют сайты c динамическим содержимым . Мы здесь не
будем показывать пальцем, но таких поисковиков достаточно много (например тот,
который на "Ра" начинается и на "мблер" заканчивается).
И вот допустим, что вы решили создать и раскрутить сайт (реклама в интернете -
великая вещь ;-) Да вот незадача - вы хотите иметь на оном сайте и гостевую
книгу, и каталог товаров, и... И для этого сайт должен быть динамическим. И
адреса у вас в оном каталоге будут типа ...?tovar=good&indexed=false - так что
вышеупомянутый "мблер" оставит ваш сайт за бортом :-( Конечно, вы можете
сказать - "Да мы раскрутим сайт и безо всякого там Рамблера! Да нам на Ра..." -
расскажу вам историю двухнедельной давности:
Прихожу я в одну контору (мы вели переговоры отн. создания трех сайтов). Ну
сидим мы общаемся. Вопрос заказчика:
- А вы сможете вывести нас в первую десятку сайтов, выдаваемых Рамблером по
ключевому слову "......"
- Ну да, конечно, хотя я предпочитаю использовать Гугль, когда ищу по вашей
тематике.
- ??? А что такое Гугль???
Вот так-то! А вы говорите Яндекс :)
Можно, конечно (ежели уж совсем серьезно подойти к рекламе в интернете - а как
иначе? :) делать отдельный сайт для каждого отдельного поисковика (и в общем-то
это правильно), но тогда вам понадобится создать и раскрутить не один, как
минимум 3-5 сайтов, что весьма и весьма трудоемко.
В общем, я расскажу вам об основах того, как сделать, чтобы ваш динамический
сайт индексировался Рамблером и другими подобными скриптоненавистническими
поисковыми системами. Данная технология используется на моем новом сайте
Реклама в интернете - создание и раскрутка сайта.
Во-первых, давайте посмотрим вот на что: каким именно образом робот понимает, что
ваш сайт имеет динамическую структуру? Правильно - он смотрит параметр 'href'
тэга 'A' и если в оном есть знаки ? или & и
если робот НЕправильный, то страницу по данному адресу он индексировать не
будет. Таким образом, задача заключается в том, чтобы убрать из строки урла
вышеупомянутые символы. А как же тогда передавать параметры скрипту? Как...
Далее по пунктам (ежели что непонятно будет пишите лично - разберемся). Все
повествование будет вестись на основе реальной разработки, и на выходе мы
получим маленький жизнеспособный скрипт, поняв принципы работы которого, вы
сможете написать большой и глючный интернет-магазин ;-)
- Давайте сразу четко сформулируем задачу: нам нужно каким-то образом вызвать
некий скрипт и передать ему некие параметры, при этом адресная строка должна
выглядеть как для нормального, статического сайта. Это просто, если мы передаем
скрипту данные из формы - ставим "POST" и все дела. Но мы то с вами должны
передать параметры из гиперссылки, то есть через URL, то есть методом GET, то
есть в УРЛе будут ? или &, то есть...
ОК. Есть такой файл, называется .htaccess - в нем вы можете задать некотрые
директивы, управляющие сервером Apache (сложно писать для "широкой" аудитории -
кто-то сейчас читает и думает про себя - чего он тут нам "азбуку жует", а кто-то
прочитал предыдущую фразу, и материт меня за "тарабарщину всякую"). Ну и ладно.
В общем знать об этом самом .htaccess нужно примерно следующее - разместив оный
файл в какой-либо папке на сервере, и написав в нем всякие штуки, мы можем
изменить поведение сервера, применительно к данной папке (если, конечно хост
провайдер разрешает). Короче:
Помещаем файл с именем .htaccess в корневую папку свего сайта (DocumentRoot) -
обычно она называется WWW или www. И пишем в него следующие строки:
RewriteEngine on
RewriteRule ^core.php$ - [L]
RewriteRule .* /core.php
О чем это я? Аааа... ну да - есть такой модуль Apache - mod_rewrite называется.
Описание данного модуля, как это обычно говорится, выходит за рамки данной
статьи - суть в том, что mod_rewrite делает с путями на сервере, что душе
угодно и использует синтаксис регулярных выражений в стиле Perl - интересующиеся
могут порыться в интернете в поисках документации к оному. И все же, что мы там
понаписали в .htaccess
RewriteEngine on
# Данной директивой .htaccess мы включаем mod_rewrite
RewriteRule ^core.php$ - [L]
# Даем понять серверу, что если запрошен файл с именем
core.php (название может быть произвольным) то с оным файлом
нужно поступить так, как обычно сервер поступает с предателями... простите с
файлами, имеющими расширение .php - передать на обработку дальше (модулю
PHP).
RewriteRule .* /core.php
# Внимание! Здесь происходит то, ради чего мы и городим весь
огород - теперь, что бы мы не написали в адресной строке - не имеет (пока не
имеет) ни какого значения - в любом случае будет вызван скрипт с именем
core.php
Но! Но в адресной строке набранный адрес остается
прежним, то есть переменная окружения REQUEST_URI если набрано,
например www.somehost.org/123 будет равна именно этому самому 123 и...
- И мы можем запросто разобрать эту строку в core.php, таким
образом, мы передаем данные прямо в имени файла!!!
Пишем тестовый скрипт и сохраняем как core.php :
function parse($uri){
if($uri){
// вырезаем цифровые значения из строковой переменной $uri в массив $uri_number
eregi("[[:digit:]]+",$uri,$uri_number);
//выводим первый элемент массива в браузер
echo $uri_number[0];
}
}
// вызываем функцию с глобальной переменной $REQUEST_URI в качестве параметра
parse($REQUEST_URI);
- Теперь набираем в строке браузера что-нибудь типа
http://имя_вашего_хоста/vasia12345.html Уррра!!! Получилось! (у меня все
работает по крайней мере :-) Заметьте, что мы вызвали несуществующий файл
vasia12345.html - сервер вернул нам OK (т.е. файл найден) - и вывел в браузер
цифры 12345. Оные же цифры и буквы (для тех кто в танке ;-) можно передавать в
качестве параметров в функции, внутри скрипта и пр.
Рамблер доволен, мы довольны, все довольны! :-))
В заключение, хочу отметить, что описанный метод, далеко не единственный - я
знаю по меньшей мере еще три способа избавиться от прелестей метода GET. Но
данный путь, на мой взгляд самый гибкий и удобный.