Forum Webscript.Ru

Общие => Веб-технологии => Тема начата: D.O. от 11 Сентября 2005, 14:35:44

Название: чайниковский вопрос про использование mod_rewrite
Отправлено: D.O. от 11 Сентября 2005, 14:35:44
Для поисковой оптимизации есть известная рекомендация использовать mod_rewrite для замены URL страниц сайта вида /page.cgi?param=value на /page/value.

Вопрос:
Как быть с существующими скриптами, которые формируют URL сыслок на страницы сайта? Можно обойтись без переписывания скриптов?

P.S.:
Статьи по теме прочитал (http://www.searchengines.ru/articles/004541.html и http://www.searchengines.ru/articles/004504.html). Там примеры только для PHP, а у меня Perl. Все ссылки имеют вид /cgi-bin/path/my_script.pl?param1=val1¶m2=val2
Название: чайниковский вопрос про использование mod_rewrite
Отправлено: Демет от 12 Сентября 2005, 11:09:20
mod_rewrite никак не связан с языком программирования.
Название: чайниковский вопрос про использование mod_rewrite
Отправлено: Croaker от 12 Сентября 2005, 13:37:29
Цитировать
D.O.:
Как быть с существующими скриптами, которые формируют URL сыслок на страницы сайта? Можно обойтись без переписывания скриптов?


Нет, нельзя. Оптимизированые URL`ы для поисковиков должен создавать ты, а не mod_rewrite (как тебе, видимо, показалось). Соотвественно скрипты тоже изменять тебе. mod_rewrite лишь берет измененный URL, переводит его в соотвествии с твоими правилами в нормальный вид и отправляет запрос обрабатываться дальше.
Название: чайниковский вопрос про использование mod_rewrite
Отправлено: D.O. от 13 Сентября 2005, 21:03:51
Продолжение вопроса.

Допустим, я прописал в .htaccess:
ErrorDocument 404 /cgi-bin/scripts/handler.pl

В этом скрипте я разбирал бы URL вида ".../cgi-bin/scripts/script/param1-val1/param2-val2" и формировал бы из этого строки вида ".../cgi-bin/scripts/script.pl?param1=val1¶m2=val2".
Как мне из handler.pl вызвать script.pl с такой строкой параметров так, чтобы:
1) не менять обработку параметров в script.pl,
2) чтобы клиенту (и пользователю браузера, и поисковому роботу) был виден только вызываемый им URL вида ".../cgi-bin/scripts/script/param1-val1/param2-val2", а не реальный вызываемый script.pl со всеми параметрами после "?".
Как делается такой невидимый редирект?