У процесі створення сайту, Ви стикнетись з думками інших веб-майстрів про перевагу статичного сайту над динамічним в плані його кращої індексації пошуковими системами.
У рекомендаціях для веб-майстрів на 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 пишемо наступний код:
#вмикаємо mod_rewrite
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'].