2009-05-19 4 views
0

Comment puis-je procéder pour mapper un alias de domaine, par ex. domainAlias.co.za, vers un dossier virtuel sous, par ex. mainDomain.co.za, de sorte que toutes les demandes à domainAlias.co.za soient réellement servies par mainDomain.co.za/domainAlias?Alias ​​de domaine de carte vers dossier virtuel dans IIS6

+0

Quelle version d'IIS? Peut-être ajouter "dans IISx" au sujet. –

Répondre

0

Vous pouvez utiliser le routage.

System.Web.Routing 
1

Une réécriture d'URL telle que IIRF vous permet de le faire.

Les règles seraient:

RewriteCond %{HTTP_HOST} ^(?!mainDomain)([^\.]+)\.co\.za$ 
RewriteRule ^/(.*)$  /%1/$1 [L] 

En anglais, cette règle dit: si l'hôte est pas maindomain.co.za, mais se termine toujours en .co.za, puis réécrire l'URL afin que est ajouté avec/domainAlias ​​/. Avec cette règle, vous obtenez:

input       output 
-----       ------ 
http://foo.co.za/a.php  http://main.co.za/foo/a.php 
http://foo.co.za/a.aspx?r=1 http://main.co.za/foo/a.aspx?r=1 

Vous pouvez aussi aller un autre niveau et faire de la réécriture conditionnelle à la présence du répertoire, quelque chose comme ceci:

RewriteCond %{HTTP_HOST} ^(?!mainDomain)([^\.]+)\.co\.za$ 
RewriteCond c:\wwwroot\%1 -d 
RewriteRule ^/(.*)$  /%1/$1 [L] 

Cela dit: si l'hôte n'est pas maindomain.co.za, ET le répertoire c: \ wwwroot \ domainAlias ​​existe, puis réécrire pour préfixer ....

Mais dans ce cas, vous pourriez plutôt faire l'inverse - tester pour le manque d'existence de le répertoire - et rediriger vers un 404:

RewriteCond %{HTTP_HOST} ^(?!mainDomain)([^\.]+)\.co\.za$ 
RewriteCond c:\wwwroot\%1 !-d 
RewriteRule ^/(.*)$  - [NF] 

NF = 404

vous pouvez également faire [F] qui est un 503 (interdit). IIRF fonctionne sur IIS5, IIS6 ou IIS7.