Je rédigeais cette question et dans le processus, cela m'a forcé à réfléchir un peu plus fort et je l'ai moi-même répondu, même si je ne comprends toujours pas pourquoi il l'a résolu.IIS 7 Url Réécriture et deux domaines
J'ai un compte sur un hôte partagé avec 2 domaines enregistrés. J'utilise la pile Asp.Net pour exécuter quelques choses comme un blog et un autre site que je prévois de lancer éventuellement. Mes deux domaines pointent vers la racine; le premier est l'original que j'ai utilisé pour l'inscription, le second est un pointeur de domaine racine que j'ai ajouté. Voici comment je veux qu'il comporte:
Structure du répertoire:
Root (www.domain1.com) Root --\ Blog (www.domain1.com/blog) Root --\ Site2 (should be directed here if www.domain2.com) Root --\ Site2 --\ Junk (www.domain2.com/junk)
En ce moment, si vous tapez www.domain1.com ou www.domain1.com/blog, qui se comporte comme prévu et je Je vais bien avec ça. Pour www.domain2.com, je la règle de réécriture configuré comme celui-ci (du web.config):
<rule name="Domain2">
<match url="(.*)(/)?" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="(www\.)?domain2\.com" ignoreCase="false" />
</conditions>
<action type="Rewrite" url="/site2/{R:1}" />
</rule>
Cette règle est censée correspondre à tout chemin si l'hôte est domain2.com, enlever le chemin à la ressource demandée et formatez-la correctement. Donc, quand quelqu'un tape www.domain2.com/junk/default.aspx, dans IIS, cela résout à www.domain2.com/site2/junk/default.aspx sans que l'utilisateur le sache. C'est principalement fonctionnant comme annoncé sauf quand l'utilisateur ne tape pas une barre oblique finale dans un sous-dossier. IE:
www.domain2.com (les)
www.domain2.com/ (travaux)
www.domain2.com/junk/ (travaux)
www.domain2.com/junk (doesn 'I travail!) IIS 7 perd son cerveau ici et le met en forme comme www.domain2.com/site2/junk parce qu'une 2ème demande est automatiquement émise pour la barre oblique et un 404 arrive.
Alors, je mis à jour que l'action soit:
<action type="Rewrite" url="/site2/{R:1}/" />
Cela semble avoir résolu, mais pourquoi ne pas IIS 7 maintenant cracher www.domain2.com/junk2/default.aspx/? Comment sait-il ne pas ajouter une barre oblique finale à une extension de document?