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.