Question

Nous avons un site Web; qui, jusqu'à présent, n'avait que des pages HTML. Nous le réaménageons maintenant en ASP .Net.

Cela signifie que toutes les pages .html seront modifiées en extension .aspx. Le problème est qu’il existe de nombreuses références externes à ces pages et que nous ne voulons pas aller tout de suite cogner chaque lien vers aspx.

Existe-t-il un moyen de rediriger un lien vers des pages .html vers des pages .aspx? Par exemple, le serveur vérifie-t-il le fichier spécifié, découvre-t-il qu'il est lié à la page .html et ouvre automatiquement la page .aspx?

Était-ce utile?

La solution

si vous faites une sorte de réécriture d'URL, vous pouvez faire en sorte que tous les liens restent les mêmes et ne servent que les pages aspx. La demande d'index.html est mappée à index.aspx

voici ce que ms dit à propos de la réécriture d'URL asp.net:

http://msdn.microsoft.com/en-us/library /ms972974.aspx

Autres conseils

Je voudrais saisir cette occasion pour laisser des extensions (.html, .aspx, etc.) derrière.

Pour tous nos principaux sites Web, nous utilisons maintenant un système de mappage personnalisé, un URI de page virtuelle étant mappé sur une page .aspx (ou.html) spécifique. Cela présente quelques avantages:

  • Vos visiteurs voient le message "Plus agréable". Les URI;
  • Vous êtes libre de réorganiser votre site comme bon vous semble, dans les coulisses, sans rompre les liens entrants existants;
  • Vous pouvez utiliser des URI virtuels dynamiques. Par exemple, au lieu de /Product.aspx?p=Blah, vous pouvez utiliser / Products / Blah

Nous avons notre propre système personnalisé, mais je pense qu'ASP.NET MVC intègre désormais cette fonctionnalité.

(Si vous suivez cette route, vous pouvez ajouter des mappages hérités pour les URI .html qui pointent vers vos nouvelles pages .aspx).

Voici comment nous avons géré une situation similaire.

  1. Configurez IIS pour mapper l'extension html vers ASP.Net au lieu de la gérer directement.

  2. Dans le gestionnaire HttpApplication.BeginRequest, vérifiez si la demande concerne un fichier HTML migré vers aspx si c'est le cas, puis envoyez la page aspx au lieu de rediriger la réponse.

  3. >
  4. Si le fichier HTML n'a pas encore été mappé, il vous suffit de diffuser le fichier HTML statique.

Comme Stusmith l’a mentionné, vous ne devriez pas laisser votre technologie sous-jacente être exposée (et certainement pas obliger) à quoi ressemblent vos URI. Le meilleur moyen est, comme indiqué, de ne montrer aucune extension, mais dans la situation actuelle, il est peut-être possible de configurer le système de telle sorte que les fichiers .html soient traités comme s'ils étaient .aspx?

Je ne connais pas la première chose à propos de .NET, mais je suppose que cela est possible sans avoir à passer par trop de cerceaux.

La deuxième meilleure approche consiste à réécrire les URI, mais cela nécessite un travail supplémentaire pour le serveur (pas beaucoup, mais cela s’ajoute).

(Ne redirigez pas avec une méta-actualisation. Toutes les solutions sont préférables.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top