在IIS6中将域别名映射到虚拟文件夹
我该如何去映射域别名,例如domainAlias.co.za
)下的虚拟文件夹。 mainDomain.co.za
,以便domainAlias.co.za
的所有请求实际得到服务mainDomain.co.za/domainAlias
?在IIS6中将域别名映射到虚拟文件夹
我还没有使用它,但IIS有URL Rewrite Module可以import Apache mod_rewrite rules。还有一个文件比较IIS URL Rewriting and ASP.NET routing。通过一些研究,你应该能够得到这个工作。
@凯文:谢谢,我会检查出来的。 – ProfK 2009-05-20 14:19:46
您可以使用路由。
System.Web.Routing
像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。
什么版本的IIS?也许在主题中添加“在IISx中”。 – 2009-05-19 21:34:11