Сопоставить псевдоним домена с виртуальной папкой в ​​IIS6 - PullRequest
0 голосов
/ 19 мая 2009

Как можно сопоставить псевдоним домена, например, domainAlias.co.za, в виртуальную папку, например, под mainDomain.co.za, так что все запросы к domainAlias.co.za фактически обслуживаются mainDomain.co.za/domainAlias?

Ответы [ 3 ]

1 голос
/ 15 июля 2009

URL Rewriter, такой как IIRF , позволяет вам сделать это.

Правила будут:

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.

0 голосов
/ 20 мая 2009

Я не использовал его, но в IIS есть Модуль перезаписи URL , который может импортировать правила Apache mod_rewrite . Существует также документ, в котором сравнивается перезапись URL IIS и маршрутизация ASP.NET . С некоторыми исследованиями вы сможете добиться этого.

0 голосов
/ 19 мая 2009

Вы можете использовать маршрутизацию.

System.Web.Routing
...