Forum Webscript.Ru
Программирование => Perl => Тема начата: D.O. от 08 Декабря 2004, 02:55:18
-
Как правильно сделать redirect?
Я делал так:
use CGI qw(:standard);
use CGI::Carp qw (fatalsToBrowser);
#...
my $query = new CGI;
#...
$query->redirect("main_page.pl");
До этого вызова пользователю не выдавалось ничего.
Такой способ не срабатывает.
Почему так получается и как сделать правильно?
-
изучаем perldoc
print $query->redirect(\'http://somewhere.else/in/movie/land\');
-
на худой конец:
print "Location: http://www.blah.org/\\n\\n";
-
Теперь понятно: можно использовать только полне абсолютные URL.
А как быть, если мне нужно передать URL на одну из страниц моего сайта, но нет желания вписывать название домена или "localhost"? Например, чтобы я мог без изменений тестировать скрипт на локальном компьютере и потом выкладывать на сайт.
-
D.O.
Теперь понятно: можно использовать только полне абсолютные URL.
это не так! относительные пути тоже можно использовать... только надо это делать грамотно!
-
commander:
относительные пути тоже можно использовать... только надо это делать грамотно!
А как это делать?
В доке я не нашёл информации.
-
$query->redirect("/main_page.pl");
-
NeoNox:
$query->redirect("/main_page.pl");
В результате просто выводит страницу с пустым телом.
-
Мда... Кто выводит страницу?
Что в логах?
Что нужно получить?
-
Проблема решена.
Это было из-за того, что я печатал
print "Content-Type: text/html; charset=windows-1251\\n\\n";
перед
print("Location: http://" . $ENV{"SERVER_NAME"} . "/cgi-bin/my_script.pl\\n\\n");