В процесе создания сайта, Вы столкнетесь с мнениями других веб-мастеров о преимуществе статического сайта над динамическом в плане его лучшей индексации поисковыми системами.
В руководстве веб-мастеров на Google написано: если вы решите использовать динамические страницы (то есть такие, в URL которых содержится символ "?"), учтите, что не все сканеры поисковых систем сканируют динамические страницы так же успешно, как и статические, лучше сократить длину и количество параметров. Таким образом, как видно, индексация динамических страниц затрудняется из-за символа "?" и длины/количества параметров.
По моей практике, могу сказать что динамическая страница с 4-5 параметрами в адресной строке успешно индексируется поисковыми системами без каких-либо проблем. Но все же, многие веб-мастера стараются не использовать динамические адресные строки с символом "?", а используют метод передачи данных в виде виртуальных каталогов (например, http://info-pages.com.ua/catalog/2).
Суть такого метода лежит в следующем. Используется обработка адресной строки и ее преобразования самим Web-сервером, с помощью файла .htaccess и правила для Web-сервера mod_rewrite. Другими словами, все параметры передаются в виде виртуальных папок, а Web-сервер отбирает эти параметры, составляет динамическую адресную строку и выполняет файл index.php.
Например у вас есть адресная строка:
http://info-pages.com.ua/index.php?catalog=2&tema=style
Мы переделываем ее в виде ссылки с виртуальными папками и получаем:
http://info-pages.com.ua/catalog/2/tema/style
Дальше, нам необходимо указать Web-серверу обработать ссылку и передать параметры файлу index.php.
Для этого, в файл .htaccess пишем следующий код:
RewriteEngine On
Options +FollowSymLinks
#Указываем путь к index.php в отношении места нахождения файла .htaccess
RewriteBase /
RewriteRule ^(.*)/catalog/(.*)/tema/(.*)$ $1/index.php?catalog=$2&tema=$3
Таким вот образом, мы указали Web-серверу, что если будет переход по адресной ссылке подпадающей под этот шаблон, то ему необходимо ее обработать и передать параметры файлу index.php. Теперь детально разберем пример выше:
Функция RewriteRule - перенаправление ссылки, с указаного шаблона ^(.*)/catalog/(.*)/tema/(.*)$ на ссылку $1/index.php?catalog=$2&tema=$3, где
^ - символ начала строки;
$ - символ окончания строки;
(.*) - любой символ (количество символов), которые заносятся в переменные (можете также попробовать "([^/]+)", "([^&]+)" и "([^]+)", так как комбинация (.*) очень прожорливая перебирает все комбинации, тогда как перечисленые - означают подставить символ (символы) не равные слешу, амперсанду или обратному слешу, соответственно);
$1, $2, $3 - это переменные которые мы получили в результате, соответственно.
Как видите, ничего сложного нет, необходимо просто продумать заранее шаблон ссылки, и в результате страничка и хотя и останется динамической, только выглядить будет как статическая.
Возможные проблемы после установки кода:
Вам необходимо будет указать пути в рисункам (изображениям) и библиотекам стилей так как, Web-сервер начинает их искать в виртуальной папке к которой мы вроде как перешли, для этого чтобы указать правильный путь к подгружаемым рисункам и библиотекам стилей укажиже в теге <head>
перед загрузкой библиотек стилей тег <base href="http://ваш_хост">
.
Для удобства определения хоста можете использовать значение переменной PHP $_SERVER['HTTP_HOST'].