2013-08-14 2 views
1

Как использовать два разных RewriteMaps на основе HTTP-Host для достижения чего-то вроде следующего?IIS UrlRewrite RewriteMap с условием HTTP Host

www.myfoo.com/test должен быть переписан /foo/test.aspx
и
www.mybar.com/test должен быть переписан /bar/test.aspx

пока я нашел http://forums.iis.net/t/1177509.aspx/1 и адаптировать его к своим потребностям:

<rule name="Rewrite rule1 for rewritemapFoo"> 
<match url=".*"/> 
<conditions> 
    <add input="{HTTP_HOST}" pattern="^www\.myfoo\.com$" /> 
    <add input="{URL}" matchType="Pattern" pattern="^.+\.((axd)|(js)|(xaml))$" ignoreCase="true" negate="true"/> 
    <add input="{rewritemapFoo:{REQUEST_URI}}" pattern="(.+)"/> 
</conditions> 
    <action type="Rewrite" url="{C:1}" appendQueryString="false"/> 
</rule> 

<rule name="Rewrite rule1 for rewritemapBar"> 
<match url=".*"/> 
<conditions> 
    <add input="{HTTP_HOST}" pattern="^www\.mybar\.com$" /> 
    <add input="{URL}" matchType="Pattern" pattern="^.+\.((axd)|(js)|(xaml))$" ignoreCase="true" negate="true"/> 
    <add input="{rewritemapBar:{REQUEST_URI}}" pattern="(.+)"/> 
</conditions> 
    <action type="Rewrite" url="{C:1}" appendQueryString="false"/> 
</rule> 


... 

<rewriteMap name="rewritemapFoo"> 
    <add key="/test" value="/foo/test.aspx"/> 
</rewriteMap> 
<rewriteMap name="rewritemapBar"> 
    <add key="/test" value="/bar/test.aspx"/> 
</rewriteMap> 

К сожалению, я получаю только 404 ответ на звонок по адресу www.myfoo.com/test и www.mybar.com/test. Может ли кто-нибудь указать, что мне не хватает?

+0

Вам действительно нужна RewriteMap? вы можете просто повторно использовать все, что есть в HTTP_HOST – cheesemacfly

ответ

0

Для этого можно использовать Conditions. В условиях у вас есть доступ к server variables, который содержит ключ «HTTP_HOST» со значением для имени хоста.

+0

Это именно то, что я пытаюсь. Не могли бы вы сказать мне, что я делаю неправильно в моем случае? – citronas

+0

@citronas, почему у вас есть -> в конце условия хоста для обоих правил? –

+0

Извините, проблемы с анонимизацией. Я не имею их в своем коде и отредактировал его соответствующим образом. – citronas

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