Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

IIS et l’héritage de la configuration des répertoires virtuels ; le module URL Rewrite à la rescousse

IIS permet d’héberger des sites web et des répertoires virtuels. Un répertoire virtuel est une sorte de sous dossier : un mini site web à l’intérieur d’un site web. Les répertoires virtuels peuvent être pratiques pour héberger des sous application, par exemple des blogs ou un site d’administration.

On pourrait imaginer avoir un site web contenant 2 répertoires virtuels : admin et blogs. La capture d’écran ci-dessous illustre cette configuration.

image

Cependant attention ! Les répertoires virtuels héritent de la configuration du site web parent. Ainsi, dans notre exemple l’application “blogs” héritera de la configuration du site IISTest. Cela peut être problématique, très souvent on ajoute des httpmodules ou autres fonctionnalités propres à un site web ; l’ajout de ces fonctionnalité peut être non désirées et entrainer des problèmes sur ces sous-sites. 

Il est possible de contourner le problème en utilisant le module “Url Rewriter v2.0” de IIS. Comme son nom l’indique, ce module permet de faire de la réécriture d’url, il est téléchargeable via WebPI ou à cette adresse : http://www.iis.net/download/urlrewrite.

L’idée est d’héberger le site web racine dans une application virtuelle puis de rediriger toutes les requêtes vers ce répertoire virtuelle sauf les requêtes allant vers /admin ou /blogs.

Dans un premier temps, il faut alors déplacer tous les fichiers du site web vers un répertoire vitrtuel que l’on pourrait nommer www

image

Ensuite, au niveau du site web, il faut ajouter la règle de rewriting suivante :

image

Vous pouvez aussi éditer directement votre fichier de configuration et ajouter les lignes suivantes :

<system.webServer>
  <rewrite>
    <rules>
      <rule name="www redirect">
        <match url=".*" />
        <action type="Rewrite" url="/www/{R:0}" />
        <conditions>
          <add input="{SCRIPT_NAME}" pattern="/admin/.*" negate="true" />
          <add input="{SCRIPT_NAME}" pattern="/blogs/.*" negate="true" />
          <add input="{SCRIPT_NAME}" pattern="/www/.*" negate="true" />
        </conditions>
      </rule>
    </rules>
  </rewrite>
</system.webServer>

Ainsi, toutes les requêtes allant vers votre site web seront réécrites vers le répertoire /www/. Puisqu’il s’agit de réécriture (rewriting), l’utilisateur ne verra aucune différence au niveau de l’url.

Et vous, avez-vous déjà eu des problèmes liés à l’héritage de configuration des répertoires virtuels ? Quelle solution avez-vous utilisée ?

Posted: dimanche 13 mars 2011 20:06 par cyril
Classé sous : , , ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

JeremyJeanson a dit :

Perso j'ai déjà testé la même solution, mais sans utilisé la section system.webServer... et l'idée de changer manuellement la config de chaque IIS m'avais fait abandonner la solution.

j'avais donc laissé tombé et j'utilisais 2 sites :(

Maintenant, je crois repartir sur ta solution avec l'écriture des règles dans le fichier de config. Là ça me plait!

# mars 14, 2011 09:26
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Intégration Yammer et SharePoint Online (Office 365), étape 1 … par Le blog de Patrick [MVP SharePoint] le 06-12-2013, 17:37

- [Dynamics CRM] Ajouter les dossiers de CRM au dossier Favoris d’Outlook par Christine Dubois le 06-10-2013, 15:50

- Visual Studio 2013 par Etienne Margraff le 06-04-2013, 10:26

- Configurer la collation SQL Server pour SharePoint par Blog de Jérémy Jeanson le 06-03-2013, 19:48

- Etendre le Team Web Access de TFS 2012 – Step 1: Création du plugin par Philippe Didiergeorges Aka Philess le 06-03-2013, 07:30

- Livre Blanc : Développer des applications NUI par Fathi Bellahcene le 06-01-2013, 11:35

- [Dynamics CRM 2011] Copier une vue d'entité par Christine Dubois le 05-29-2013, 13:20

- [Conf’SharePoint 2013] Mes présentations… par Le blog de Patrick [MVP SharePoint] le 05-28-2013, 09:04

- [wpdev] Storage bug in MediaLibrary.SavePicture par Kévin Gosse le 05-26-2013, 19:08

- VMMap en mode instrumentation sur système 64bit : attention à la plateforme cible du build .NET par CoqBlog le 05-25-2013, 22:25