En utilisant IIS6, comment puis-je placer des fichiers dans un sous-dossier tout en les faisant fonctionner comme s'ils se trouvaient à la racine ?

StackOverflow https://stackoverflow.com/questions/45796

  •  09-06-2019
  •  | 
  •  

Question

Notre site Web ASP.NET 3.5 fonctionnant sur IIS 6 compte deux équipes qui ajoutent du contenu :

  • Équipe de développement ajoutant du code.
  • Équipe commerciale ajoutant des pages Web simples.

Pour des raisons de santé mentale et d'organisation, nous aimerions que l'équipe commerciale ajoute ses pages Web à un sous-dossier du projet :

Racine:pour les pages de l'équipe de développement

Contenu:pour les pages de l'équipe commerciale

Mais

Nous souhaitons que les utilisateurs puissent accéder au contenu de l'équipe commerciale sans avoir à ajouter « Contenu » dans leurs URL, comme décrit ci-dessous :

Racine:Par défaut.aspx (Disponible à:www.oursite.com/default.aspx)

Contenu:Popcorn.aspx (Disponible à:www.oursite.com/popcorn.aspx)

Existe-t-il un moyen de créer une entrée de configuration dans un outil de réécriture ISAPI pour chacune de ces pages ?

Était-ce utile?

La solution

Je n'ai aucun moyen de tester cela pour le moment, mais je pense que vous pouvez utiliser l'indicateur -f sur RewriteCond pour vérifier si un fichier existe, dans l'un ou l'autre répertoire.

RewriteCond %{REQUEST_FILENAME} -!f
RewriteCond Content/%{REQUEST_FILENAME} -f
RewriteRule (.*) Content/(.*)

Quelque chose comme ça pourrait aussi faire ce que vous recherchez.

Autres conseils

Puisque les extensions seront ASPX, ASP.NET récupérera la demande...vous pouvez écrire un HttpModule qui vérifie les pages qui génèrent un 404, puis vérifier également le sous-dossier.

Si vous savez que toutes les pages avec un certain format proviendront de ce dossier, vous pouvez simplement réécrire l'URL dans ASP.NET (soit dans Global.asax, soit dans un HttpModule).

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