При перенаправлении пользователей с унаследованного веб-сайта на новый, каков наилучший способ определить, показывать ли им пользовательское приветственное сообщение или нет? - PullRequest
0 голосов
/ 17 марта 2009

Допустим, у вас есть устаревший веб-сайт, работающий на старой кодовой базе, которая предлагает определенные функции. Сайт-преемник запущен и работает, предоставляя все старые функции и многое другое. Некоторое время на старом сайте была ссылка HTML, указывающая на новый, для тех пользователей, которые хотят кликнуть.

Теперь унаследованный сайт подходит к концу, и вы хотите автоматически перенаправить пользователей на новый сайт, например, с помощью перенаправления 301 или 302. Однако, когда пользователь сталкивается с этим перенаправлением, вы также хотите отобразить дружественное сообщение на новом сайте, приветствуя его и объясняя, почему он не видит старую версию.

Когда пользователь щелкает ссылку HTML, заполняется заголовок HTTP_REFERER, и с помощью этого значения можно вызвать приветственное сообщение. Однако, похоже, что это не так при использовании кодов перенаправления 3XX.

В топе Google по этому вопросу сказано следующее: «Спецификация HTTP 1.1 гласит это ясно: если дан код 3XX, нет Значение реферера передается. (в конце концов, URL, который указал на сайт 3XX). " (http://www.usenet -forums.com / апач-веб-сервер / 37811-как-набор-реферер-redirect.html # post145986 )

Однако я не смог найти это утверждение в кратком прочтении спецификации (http://tools.ietf.org/html/rfc2616).

Может кто-нибудь предложить правильный способ достижения этой функциональности?

Примечание. Это не является всеобъемлющим решением. Мы понимаем, что некоторые клиенты даже не отправляют заголовок HTTP_REFERER по соображениям конфиденциальности, но ради аргумента давайте проигнорируем этот вариант использования.

Ответы [ 3 ]

6 голосов
/ 17 марта 2009

Во-первых, это должен быть 301, а не 302 редирект. Ваше перенаправление является постоянным, поэтому вы хотите указать это. Что касается того, как указать перенаправление, просто добавьте parm к URL. Вместо перенаправления на http://www.newsite.com перенаправьте их на http://www.newsite.com?FromOldSite=Y

1 голос
/ 17 марта 2009

Не могли бы вы просто перенаправить их на определенную стартовую страницу? Например, если вы попытаетесь посетить http://oldsite.com/desired/page, просто отправьте их на http://newsite.com/welcome?nextpage=/desired/page. Страница приветствия может показать сообщение, а затем передать его содержимому. Кроме того, вы можете отправить их прямо на новую страницу с ?show_welcome=true в URL.

0 голосов
/ 17 марта 2009

Не уверен, как вы планируете перенаправлять своих пользователей, но если вы не хотите «безобразно» поднимать свой URL, вы можете просто установить свой собственный заголовок при посещении старого сайта, а затем проверить его на новом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...