По всем вопросам пишите на webmaster@info-pages.com.ua. Вы можете свободно использовать/размещать/перепечатывать статьи сайта всего лишь указав ссылку на источник.
Создание статических страниц на динамическом сайте
Создание статических страниц на динамическом сайте
Размещено: 20 апреля 2008
В процесе создания сайта, Вы столкнетесь с мнениями других веб-мастеров о преимуществе статического сайта над динамическом в плане его лучшей индексации поисковыми системами.
В руководстве веб-мастеров на 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'].
памагите. на виндах работало нормально, на фрях нивкакую. не происходит редиректа. использую Apache/1.3.41
Комментарий добавил: admin 21:20 21.10.08
Привет, почитай здесь:
http://xpoint.ru/forums/internet/webservers/apache/thread/33697.xhtml
или здесь
http://forum.ixbt.com/topic.cgi?id=69:139-3 (найди вопрос "Как прикрутить mod_rewrite к Апачу под FreeBSD?")
судя по всему виной всему твой апач, перекомпилируй его как написано по второй ссылке или смени версию.
Комментарий добавил: сашок 03:54 22.10.08
Спасибо. Нашол проблему. Просто не не был включен AllowOverride. Прописал после него all все заработало.
p.s. Спасибо за эту статью. Давно хотел понять по какому принципу работают сайты без отображения скриптов в урле и нашол инфу тока на твоем сайте. Удачи!
Комментарий добавил: repus 14:48 13.07.09
У МЕНЯ ТАКАЯ ССЫЛКА http://rebiznes.ru/bord/adds_show.php?page=1&catid=48obiavlenia_lugansk-portal.html
КАК ЕЕ ПРЕДЕЛАТЬ С ПОМОЩЬЮ ФАЙЛА htasse к такому виду