нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 26/10/12 в 16:07 |
Новая CMS имеет совершенно иную структуру. К примеру на старом сайте /join.html, а на новом это /signup.php. Куча внешних ссылок уже заточена под /join.html?param1=value1¶m2=value2¶mN=valueN
Как аккуратно сохранив рефера средиректить /join.html на /signup.php с теми же параметрами?
Т.е.
/join.html?param1=value1¶m2=value2¶mN=valueN
превратить в
/signup.php?param1=value1¶m2=value2¶mN=valueN
сохранив рефера.
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 26/10/12 в 17:18 |
Никогда не задавался таким вопросом. А сейчас оказалось, что поведение в этом случае не описывается в стандарте.
Сделал пример на проверить, и оказалось, что при редиректе (и 301, и 302) в опере/хроме/фоксе реферер сохраняется. Т.е. если на странице X нажать ссылку Y, которая редиректит браурез на Z, то на Z реферер=X
Вот сам убедись
src.php
Код: | <?
header('Location: dest.php'); |
dest.php
Код: | <?
echo '<b>referer</b> = '.(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '*not set*');
|
dummy.html Код: |
<a href="src.php">pass dummy.html as referer to src.php which redirects to dest.php</a> |
сохрани в один каталог под веб-сервером, открой dummy.html и нажми ссылку
------
Анекдот в тему:
[user1] I read some on Google that you can use:
header("referer:page1.php")
to pass the referrer, but it isn't working for me. Any ideas?
[user2] try with an uppercase 'r' and a space between the ':' and the uri:
header("Referer: page1.php");
|
|
|
|
С нами с 11.12.11
Сообщения: 351
Рейтинг: 737
|
Добавлено: 26/10/12 в 19:27 |
А разве это нельзя сделать с помощью RewriteRule + R=301,QSA?
|
|
|
|
нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 26/10/12 в 19:30 |
Про то что 301 редирект сохраняет рефера - это я знаю. Вот как сохранить и передать http GET параметры к новому файлу?
|
|
|
|
нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 26/10/12 в 19:34 |
Maaad писал: | А разве это нельзя сделать с помощью RewriteRule + R=301,QSA? |
Думаю так и надо. А можно пример?
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 26/10/12 в 19:51 |
Vyacheslav писал: | Думаю так и надо. А можно пример? |
Код: | rewriterule ^join.html$ signup.php [R=301,QSA] |
QSA как раз подцепляет все параметры из входного url к выходному
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |