2009-05-19 2 views
0

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

+0

Какая версия IIS? Может быть, добавить в тему «в IISx». –

ответ

0

Я не использовал его, но IIS имеет URL Rewrite Module, который может import Apache mod_rewrite rules. Существует также документ, который сравнивает IIS URL Rewriting and ASP.NET routing. С некоторыми исследованиями вы должны уметь это работать.

+0

@Kevin: Спасибо, я проверю их. – ProfK

+0

Модуль Rewrite URL работает для IIS7, а не в более ранних версиях IIS. – Cheeso

0

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

System.Web.Routing 
1

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 ​​существует, а затем переписать в preend ....

Но в этом случае вы можете вместо этого сделать обратный тест из-за отсутствия существования каталог - и перенаправить на 404:

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

NF = 404

вы также можете сделать [F], который является 503 (Forbidden).

IIRF работает на IIS5, IIS6 или IIS7.

Смежные вопросы