2010-07-08 7 views
0

Je fais une redirection 301 permanente d'un ancien serveur vers un nouveau serveur. Lorsque la page du nouveau serveur est atteinte, je veux pouvoir déterminer si l'utilisateur provient de l'ancien site et réagir ensuite différemment, c'est-à-dire demander à l'utilisateur de re-booker la nouvelle page.ASP.Net Détection si le référent provenait d'une redirection 301 permanente

Des suggestions sur la façon de déterminer si le référent était une redirection permanente?

TIA

J

Répondre

2

Le navigateur gère généralement ce genre de chose, et la plupart des navigateurs ne passent pas sur un referrer en venant d'une redirection 301 permanente. La norme RFC ne spécifie pas si les informations de provenance doivent être transmises, vous ne pouvez donc pas vous attendre à ce comportement.

Si vous redirigez vers le même domaine principal, vous pouvez essayer une valeur de cookie. Vous pouvez également essayer de rediriger avec une chaîne de requête spéciale, comme ?from=oldsite ou quelque chose du genre afin de résoudre ce problème.

+0

En fait, il est à un nouveau domaine si le cookie est sorti. Je vais essayer de trouver un moyen de passer une chaîne de requête, mais cela pourrait être difficile car la redirection provient d'IIS et non d'une page d'origine. Merci –

+1

IIS vous permet de spécifier des chaînes de requête lors de l'implémentation d'une redirection. Si vous souhaitez catégoriquement ajouter les chaînes de requête à toutes les redirections IIS, vous pouvez le faire. – rakuo15

-1

Vous devriez pouvoir utiliser ce code:

string referrer = Request.UrlReferrer.ToString(); 

Je pense que vous pouvez aussi le faire de cette façon:

string referrer = Request.ServerVariables["http_referrer"]; 
+0

Ni l'un ni l'autre ne fonctionnera. J'ai testé les deux et l'information de référence n'est pas transmise. –