Изменение URL-адреса с помощью IIS 6/7 - изменение имени хоста {HTTP_HOST}

IIRF бесплатен и позволяет переписывать iis заголовки, включая HTTP_HOST.

Я aspdotnet хочу переписать http://abc.xyz.com/ * на http://xyz.com/sites/abc/ *. Это asp.net-website делается для сайта SharePoint, который aspdotnet внутренне использует {HTTP_HOST}.

Вам asp.net необходимо переписать и хост, и asp.net URL. Это немного усложняет aspx задачу. В этом наборе правил asp-net я делаю это поэтапно и использую aspdotnet новый заголовок для сохранения aspx состояния между шагами:

# detect whether we're using the abc host
RewriteCond     %{HTTP_HOST}          ^abc\.xyz\.com$
RewriteHeader   Host-Needs-Rewrite:   ^$                 YaHuh

# rewrite the Host: header to the alt host name if necessary
RewriteCond     %{HTTP_HOST_NEEDS_REWRITE}   ^YaHuh$
RewriteCond     %{HTTP_HOST}                 ^(?!xyz\.com)(.+)$
RewriteHeader   Host:          .*            xyz.com 

# rewrite the Url to the appropriate place
RewriteCond     %{HTTP_HOST_NEEDS_REWRITE}   ^YaHuh$
RewriteCond     %{HTTP_HOST}                 ^xyz\.com$
RewriteRule     /(.*)$                       /sites/abc/$1     [L]

Вы aspdotnet также можете использовать aspx подстановочный знак для части asp.net abc. Как это:

# detect whether we're using the abc host
RewriteCond     %{HTTP_HOST}          ^([^.]+)\.xyz\.com$
RewriteHeader   Host-Needs-Rewrite:   ^$                     %1

# rewrite the Host: header to the alt host name if necessary
RewriteCond     %{HTTP_HOST_NEEDS_REWRITE}   ^.+$
RewriteCond     %{HTTP_HOST}                 ^(?!xyz\.com)(.+)$
RewriteHeader   Host:          .*            xyz.com 

# rewrite the Url to the appropriate place
RewriteCond     %{HTTP_HOST_NEEDS_REWRITE}   ^(.+)$
RewriteCond     %{HTTP_HOST}                 ^xyz\.com$
RewriteRule     /(.*)$                       /sites/%1/$1     [L]

asp.net

iis

2022-10-20T22:08:38+00:00