2009-05-19 66 views
0

我该如何去映射域别名,例如domainAlias.co.za)下的虚拟文件夹。 mainDomain.co.za,以便domainAlias.co.za的所有请求实际得到服务mainDomain.co.za/domainAlias在IIS6中将域别名映射到虚拟文件夹

+0

什么版本的IIS?也许在主题中添加“在IISx中”。 – 2009-05-19 21:34:11

回答

0

您可以使用路由。

System.Web.Routing 
1

IIRF这样的URL重写器可以让你这样做。

的规则将是:

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

在英语中,这个规则说:如果主机不maindomain.co.za,但仍.co.za结束,然后重写URL,以便它前缀/ domainAlias /。有了这个规则,你会得到:

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 

你也可以去再一个级别,并作出这样的重写对目录的存在条件,东西:

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

这是说:如果主机是不是maindomain.co.za,和目录c:\ wwwroot \ domainAlias存在,然后重写预先... ...

但在这种情况下,你可能会反而想做缺乏存在的逆向测试目录 - 并重定向到404:

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

NF = 404

还可以做[F],这是一个503(禁止)。

IIRF适用于IIS5,IIS6或IIS7。