0

Je tente d'implémenter une redirection 301 à des fins de réécriture d'url/d'optimisation SEO. J'effectue ces redirections dans un module de mon site Web VB.NET.301 La redirection à l'aide de Response Header ne parvient pas à rediriger correctement

Lorsque je spécifie un nouvel emplacement dans l'en-tête, il ajoute toujours le nouvel emplacement sur l'URL existante au lieu de le remplacer complètement ou d'utiliser un chemin relatif. Ainsi, au lieu d'une belle URL que je reçois une combinaison des deux:

http://site.com/productList.aspx?id=123&fid=123&mid=123http://site.com/store/books/ 

Voici le code que j'utilise pour la redirection:

httpContext.Response.Status = "301 Moved Permanently" 
httpContext.Response.AddHeader("Location", "http://site.com/store/books") 
httpContext.Response.End() 

J'ai essayé d'utiliser par rapport ~/chemins sans succès. Je devine que je fais mal, c'est très simple. S'il vous plaît aider! Merci d'avance.

Répondre

1

Essayez-vous de le faire après qu'ASP.NET a déjà commencé à remplir le tampon de réponse? Essayez d'abord d'appeler Response.Clear().

+0

Je vais essayer la méthode Response.Clear et voir si cela fonctionne. – letsgetsilly

1

Le code que vous avez posté a bien fonctionné pour moi. Vous pouvez essayer d'utiliser la méthode RedirectPermanent.

+0

Ce code a fonctionné pour moi dans le passé. Je pense que la différence peut-être que je l'utilise dans un module très tôt dans le cycle de vie de la demande, mais je ne suis pas intimement familier avec le cycle de vie de la demande, donc je ne suis pas sûr de la cause. Merci pour votre suggestion, mais malheureusement, je suis sur .net 3.5 seulement. – letsgetsilly

Questions connexes