Forum Webscript.Ru

Программирование => Perl => Тема начата: D.O. от 13 Сентября 2005, 21:06:23

Название: маленький вопрос про редирект
Отправлено: D.O. от 13 Сентября 2005, 21:06:23
Как мне из script1.pl вызвать script2.pl с некоторой строкой параметров так, клиенту (и пользователю браузера, и поисковому роботу) был виден только вызываемый им URL, а не URL реального script2.pl?
Как делается такой невидимый редирект?
Название: маленький вопрос про редирект
Отправлено: Меняздесьдавнонет от 13 Сентября 2005, 22:25:28
про редирект - это ты зря написал.
если ты задумаешься о смысле слова редирект, то поймёшь, что
невидимых редиректов может быть в принципе.
Название: маленький вопрос про редирект
Отправлено: D.O. от 13 Сентября 2005, 23:03:39
Пусть будет не редирект.
Но как сделать такой вызов, чтобы пользователь (или робот) заходил на URL-1, на сервере в ответ выполнялся бы скрипт, находящийся по URL-2, а клиент думал бы, что он видит контент с адреса URL-1?
Название: маленький вопрос про редирект
Отправлено: arto от 13 Сентября 2005, 23:08:34
proxy ?
Название: маленький вопрос про редирект
Отправлено: D.O. от 13 Сентября 2005, 23:13:53
Цитировать
arto:
proxy ?


Можно подробнее?
Название: маленький вопрос про редирект
Отправлено: Меняздесьдавнонет от 14 Сентября 2005, 00:22:38
arto
Он чпу делает. из 404.
http://forums.webscript.ru/showthread.php?s=&threadid=21255
Название: маленький вопрос про редирект
Отправлено: D.O. от 14 Сентября 2005, 12:15:15
Ничего не понял. Это моя тема по ссылке, где ничего толком не выяснили.
А что такое "чпу"?
Название: маленький вопрос про редирект
Отправлено: Меняздесьдавнонет от 14 Сентября 2005, 17:16:59
так называется то, что ты хочешь сделать
Название: маленький вопрос про редирект
Отправлено: D.O. от 14 Сентября 2005, 17:22:42
Цитировать
RomikChef:
так называется то, что ты хочешь сделать


А расшифровыввается эта аббревиатура как?
И есть какие-нибудь доки про это дело?
Название: маленький вопрос про редирект
Отправлено: commander от 14 Сентября 2005, 18:06:59
D.O.
.htaccess:
RewriteEngine On
Options +FollowSymLinks

RewriteBase /
RewriteRule ^(.*)script1.pl* $1script2.pl

чпу - человеко понятный url
Рома сорри если наврал в терминологии... но смысл думаю ясен..
Название: маленький вопрос про редирект
Отправлено: D.O. от 14 Сентября 2005, 18:14:24
Цитировать
commander:
RewriteRule ^(.*)script1.pl* $1script2.pl


А что потом увидит пользователь в строке запроса - изначально запрошенный script1.pl или script2.pl?

P.S.:
На Apache 2 это у меня не сработало (как и куча всего другого опробованного сегодня), вечером попробую на домашнем компьютере с другим Apache.
Название: маленький вопрос про редирект
Отправлено: commander от 14 Сентября 2005, 18:21:06
D.O.
изначально запрошенный script1.pl
Название: маленький вопрос про редирект
Отправлено: Корепанов Иван от 14 Сентября 2005, 18:25:39
Не знаю так ли я понял твой вопрос, но в перл есть такая ф-я:

Location: $url;

Т.е. если поставить такую строчку в конце, то после выполнения программа автоматически перейдет на $url.
В твоем случае в качестве $url можно записать полный адрес скрипта script2.pl - тогда у пользователя на экране отобразиться script2.pl после выполнения script1.pl.

Можно подобные вещи сделать, прибегая к хтмл:

print "\\n";
print "\\n";
print "\\n";

Если будут вопросы - задавай.
Название: маленький вопрос про редирект
Отправлено: D.O. от 14 Сентября 2005, 18:31:56
Корепанов Иван

Смысл моих вопросов в том, что я хочу придать своему динамическому сайту статический вид (поисковая оптимизация, чтоб её).
Название: маленький вопрос про редирект
Отправлено: commander от 14 Сентября 2005, 18:40:10
Корепанов Иван
Location - это не функция языка Перл...
Название: маленький вопрос про редирект
Отправлено: Корепанов Иван от 14 Сентября 2005, 18:40:49
D.O.

Что-то не совсем понял, что значит

Цитировать
придать своему динамическому сайту статический вид


Посторайся объяснить популярным языком, может помогу.
А мои советы тебе пригодились?
Название: маленький вопрос про редирект
Отправлено: D.O. от 14 Сентября 2005, 19:00:13
Цитировать
Корепанов Иван:
Посторайся объяснить популярным языком, может помогу.
А мои советы тебе пригодились?


Советы про 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
Название: маленький вопрос про редирект
Отправлено: D.O. от 14 Сентября 2005, 19:04:27
Но поскольку параметров запроса несколько, и не все из них обязательные, мне теперь лучшей кажется идея всё-таки переделать процесс получения значений параметров в скрипте areal.pl из вышеприведённого примера. И использовать mod_rewrite.
Название: маленький вопрос про редирект
Отправлено: Корепанов Иван от 14 Сентября 2005, 19:29:06
тогда не знаю чем помочь...
извини.