2016-01-19 29 views
8

Mam witrynę/aplikację, na której te same strony prowadzą wiele stron internetowych (w zależności od adresu URL strony wyświetlają inne logo/css/treść itp.). Próbuję zmusić każdą domenę witryny do przekierowania na stronę www. Verison domeny.Przepis na URL IIS - z wieloma domenami

Użyłem domyślnego kanoniczną regułę na początek w adresie URL Przepisz potem po prostu zmieniła wzorzec URL Mecz z:

(.*) 

Do:

(^domain*) 

tak, że będzie to zrobić tylko za nie-www. wersja bieżącej domeny i nie pasuje do wszystkich domen.

Mój plan polega na stworzeniu jednego z nich dla każdej domeny, która używa systemu do przekierowania każdego na stronę www. wersja.

Kiedy testuję wzorzec w IIS, reguła pasuje do (jak sądzę) powinna. Ale kiedy wchodzę na stronę internetową, nie przekierowuję, pozostaje tylko na stronie www. wersja.

Czy ktoś wie, gdzie idę źle lub czy jest to możliwe?

Dzięki J.

UPDATE myślałem, że spróbować i dać lepsze wyjaśnienie:

Mam jedną stronę internetową w konfiguracji IIS. Strony tej witryny prowadzą wiele stron tego samego typu, stylu, logo i produktów na każdej stronie zmieniają się w zależności od adresu URL.

więc powiedzieć, mam następujący powiązań Setup na stronie internetowej:

www.domain1.com, domain1.com, www.domain2.com, domain2.com, www.domain3.com, domain3.com

Witryna będzie wyświetlać inną wyglądającą witrynę internetową, z inną zawartością, stylami itp. W zależności od adresu URL.

Gdybym wtedy użyć domyślnego „kanoniczną Domain Name” regułę URL Przepisz trzeba wybrać jedną domenę do przekazania, więc jeśli wybrałem www.domain1.com dodaje regułę:

<rewrite> 
    <rules> 
     <rule name="CanonicalHostNameRule1"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="^www\.domain1\.com$" negate="true" /> 
      </conditions> 
      <action type="Redirect" url="http://www.domain1.com/{R:1}" /> 
     </rule> 
     </rules> 
</rewrite> 

ten następnie przekazuje wszystko na stronę www.domain1.com. Więc jeśli użytkownik odwiedza domenę2.com lub www.domain2.com, zostanie przekierowany na stronę www.domain1.com.

muszę go tak, że ludzie przekierowany następująco:

domain1.com> www.domain1.com

domain2.com> www.domain2.com

domain3.com> www .domain3.com

Podczas testowania nowych witryn internetowych w celu dodania do istniejących, konfigurujemy je w subdomenie, więc wymagam również subdomen, aby nadal nie były przekierowywane.

Problem polega na tym, że robimy to w tym samym pliku witryny/web.config.

Odpowiedz

3

Spróbuj wykonać następujące czynności (kredyt do @Atashbahar na https://stackoverflow.com/a/31955179/2664650):

<rewrite> 
    <rules> 
      <rule name="Add WWW" stopProcessing="true"> 
      <match url="^(.*)$" /> 
      <conditions> 
      <add input="{HTTP_HOST}" pattern="^(?!www\.)(.*)$" /> 
      </conditions> 
      <action type="Redirect" url="http://www.{C:0}{PATH_INFO}" redirectType="Permanent" /> 
     </rule> 
    </rules> 
</rewrite> 
+0

Hi clorkster, dzięki za odpowiedź, myślę, że to jest to, ale to działa, chociaż jedna rzecz, nie wspominając, że poszedł konfigurowania strony internetowe mamy je na poddomenie, to również dodaje www. przed tym, czy znasz sposób, aby to zatrzymać? – JBoom

+0

Zdecydowanie. Czy istnieje wspólna tld dla nich wszystkich, a przynajmniej niewielka ich liczba? A format zawsze subdomain.domain.tld? – cl0rkster

+0

Zaokrąglałem to, dodając warunek "nie pasuje do wzorca" i uczyniłem wzór subdomeną, muszę dodać jedną dla każdej subdomeny, co jest w porządku, ponieważ jest tylko wtedy, gdy strona zostanie skonfigurowana. Dzięki. – JBoom

Powiązane problemy