Forum Webscript.Ru
Общие => Веб-технологии => Тема начата: 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 никак не связан с языком программирования.
-
D.O.:
Как быть с существующими скриптами, которые формируют URL сыслок на страницы сайта? Можно обойтись без переписывания скриптов?
Нет, нельзя. Оптимизированые URL`ы для поисковиков должен создавать ты, а не mod_rewrite (как тебе, видимо, показалось). Соотвественно скрипты тоже изменять тебе. mod_rewrite лишь берет измененный URL, переводит его в соотвествии с твоими правилами в нормальный вид и отправляет запрос обрабатываться дальше.
-
Продолжение вопроса.
Допустим, я прописал в .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 со всеми параметрами после "?".
Как делается такой невидимый редирект?