Forum Webscript.Ru
Программирование => Perl => Тема начата: D.O. от 13 Сентября 2005, 21:06:23
-
Как мне из script1.pl вызвать script2.pl с некоторой строкой параметров так, клиенту (и пользователю браузера, и поисковому роботу) был виден только вызываемый им URL, а не URL реального script2.pl?
Как делается такой невидимый редирект?
-
про редирект - это ты зря написал.
если ты задумаешься о смысле слова редирект, то поймёшь, что
невидимых редиректов может быть в принципе.
-
Пусть будет не редирект.
Но как сделать такой вызов, чтобы пользователь (или робот) заходил на URL-1, на сервере в ответ выполнялся бы скрипт, находящийся по URL-2, а клиент думал бы, что он видит контент с адреса URL-1?
-
proxy ?
-
arto:
proxy ?
Можно подробнее?
-
arto
Он чпу делает. из 404.
http://forums.webscript.ru/showthread.php?s=&threadid=21255
-
Ничего не понял. Это моя тема по ссылке, где ничего толком не выяснили.
А что такое "чпу"?
-
так называется то, что ты хочешь сделать
-
RomikChef:
так называется то, что ты хочешь сделать
А расшифровыввается эта аббревиатура как?
И есть какие-нибудь доки про это дело?
-
D.O.
.htaccess:
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^(.*)script1.pl* $1script2.pl
чпу - человеко понятный url
Рома сорри если наврал в терминологии... но смысл думаю ясен..
-
commander:
RewriteRule ^(.*)script1.pl* $1script2.pl
А что потом увидит пользователь в строке запроса - изначально запрошенный script1.pl или script2.pl?
P.S.:
На Apache 2 это у меня не сработало (как и куча всего другого опробованного сегодня), вечером попробую на домашнем компьютере с другим Apache.
-
D.O.
изначально запрошенный script1.pl
-
Не знаю так ли я понял твой вопрос, но в перл есть такая ф-я:
Location: $url;
Т.е. если поставить такую строчку в конце, то после выполнения программа автоматически перейдет на $url.
В твоем случае в качестве $url можно записать полный адрес скрипта script2.pl - тогда у пользователя на экране отобразиться script2.pl после выполнения script1.pl.
Можно подобные вещи сделать, прибегая к хтмл:
print "\\n";
print "\\n";
print "\\n";
Если будут вопросы - задавай.
-
Корепанов Иван
Смысл моих вопросов в том, что я хочу придать своему динамическому сайту статический вид (поисковая оптимизация, чтоб её).
-
Корепанов Иван
Location - это не функция языка Перл...
-
D.O.
Что-то не совсем понял, что значит
придать своему динамическому сайту статический вид
Посторайся объяснить популярным языком, может помогу.
А мои советы тебе пригодились?
-
Корепанов Иван:
Посторайся объяснить популярным языком, может помогу.
А мои советы тебе пригодились?
Советы про Location не пригодились. Я этот приём знаю, но для моей задачи он не применим.
Задача такая:
Есть страницы со ссылками на скрипты. Фрагмент реальной ссылки:
.../cgi-bin/info101/area.pl?region_id=2&start=21&ads=20&what=1&what=2&what=3&area_id=2002
Для поисковой оптимизации нужно, чтобы она имела вид:
.../area-2002/region-2/start-21/ads-20/what-1/what-2/what-3
В .htaccess прописывается:
ErrorDocument 404 /cgi-bin/handler.pl
А в handler.pl я хотел сделать следующее:
Взять строку запроса типа
.../area-2002/region-2/start-21/ads-20/what-1/what-2/what-3
и сформировать из неё строку типа
.../cgi-bin/info101/area.pl?region_id=2&start=21&ads=20&what=1&what=2&what=3&area_id=2002
чтобы в скрипте area.pl не пришлось переделывать процесс получения значений параметров запроса.
Для этого я искал способ из скрипта handler.pl вызвать area.pl со строкой параметров, и чтобы со стороны юзера (или поискового робота) URL выглядел как
.../area-2002/region-2/start-21/ads-20/what-1/what-2/what-3
-
Но поскольку параметров запроса несколько, и не все из них обязательные, мне теперь лучшей кажется идея всё-таки переделать процесс получения значений параметров в скрипте areal.pl из вышеприведённого примера. И использовать mod_rewrite.
-
тогда не знаю чем помочь...
извини.