Google Chrome и Response.RedirectPermanent - PullRequest
0 голосов
/ 18 мая 2011

Я только что столкнулся с проблемой, которая потребовалась немного времени, чтобы выяснить, и хотел задокументировать ее для кого-то еще, кто может иметь такую ​​же проблему.

Наш сайт может использоваться в разных странах, поэтому у нас есть URL, которые выглядят так:

http://www.example.com/
http://www.example.com/CA
http://www.example.com/UK

Первый автоматически отправляется в США. Мы используем файлы cookie для запоминания своей страны, чтобы, когда они возвращаются на сайт позже (http://www.example.com),, мы перенаправляем их на (http://www.example.com/CA)

)

Когда кто-то хочет вернуться к версии для США, он щелкает ссылку, подобную этой (http://www.example.com/US), которая устанавливает свои cookie-файлы и перенаправляет их на основной сайт, потому что в США обычно нет кода страны.

При выполнении этих перенаправлений мы бы сделали следующее, если бы они щелкнули по ссылке / US:

SetCookie("US");
Response.RedirectPermanent("/");

Проблема возникла, когда они переключились на Канаду (которая работала), а затем попытались вернуться в США. Ответ ниже.

1 Ответ

1 голос
/ 18 мая 2011

Проблема возникла с Google Chrome. Поскольку мы использовали постоянное перенаправление, оно даже не отправило бы http://www.example.com/US в браузер. В основном сказано:

О, в прошлый раз мне сказали / США - это постоянный редирект на / так что я просто запрос / без отправки / США на браузер.

Таким образом, исправлением было использование Response.Redirect (302) вместо Response.RedirectPermanent (301).

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