Subdomeny wieloznaczne w IIS7. Czy można zrobić je tak, jak w Apache?

Czy jest możliwe skonfigurowanie IIS7 tak, aby osiągnąć taką samą funkcjonalność jak Apache w odniesieniu do domen wieloznacznych? Interesuje mnie routing user w ASP.NET aplikacja internetowa oparta na subdomenie użytkownika użytej w URL.

Coś takiego jest opisane tutaj:

Http://steinsoft.net/index.php?site=programming/articles/apachewildcarddomain

Thanks

Author: GrZeCh, 2009-01-19

6 answers

Odpowiedź brzmi nie, IIS7 (nadal) nie obsługuje nazw hostów wieloznacznych (zobacz to ). Jeśli chcesz obsługiwać wiele domen na jednej stronie internetowej, jedynym obejściem na razie, jak sugerował notandy, jest użycie dedykowanego adresu IP i robienie tego z DNS, który obsługuje symbole wieloznaczne.

Aktualizacja 2013

Dla kompletności, IIS8 nie ma jeszcze tej funkcji.

Aktualizacja 2016

Wreszcie, IIS 10 w systemie Windows 2016 obsługuje subdomeny wieloznaczne.

 40
Author: Daniel Liuzzi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-29 08:52:54

Czy IIS obsługuje nagłówek hosta wieloznacznego? Czy Mogę przechwycić i przekierować *.mydomain.com do jednej strony?

Odpowiedź brzmi tak/nie. Tak, bo jesteś możliwość przekierowania*. mydomain.com do jednego strona www. Nie, bo magia jest w DNS, a nie IIS.

Oto Jak to zrobić:
W IIS MMC, system wymiany linkow brak hosta nagłówka, a następnie przypisać adres IP do miejscu. (jeśli masz jeden adres IP w polu, następnie można pominąć to). Dzięki temu strona internetowa będzie bound to konkretnego IP i będzie słuchał wszystkich Żądania HTTP wysyłane na adres IP, a Ty zrobione:)

Następnym krokiem jest upewnienie się, że Twoje imię rozdzielczość działa na dziką kartę zapytanie i odpowiedź z poprawnym IP adres. Jeśli używasz Microsoft DNS serwis, nie pozwoli na tworzenie a ' * ' rekord (zakładając, że już utworzono strefę domeny W DNS MMC), musisz wykonać następujące czynności:

  1. przejdź do %windir%\system32\dns\
  2. Znajdź plik strefy. Np.
    mydomain. com. dns, open it with Notepad
  3. Dodaj wpis. Np.
    * A IP.IP.IP.IP
  4. Zapisz plik danych strefy
  5. Przeładuj dane strefy w DNS MMC.

Zwróć uwagę, że robiąc to, wszystkie * odpowie na IP, które Ci skonfigurowany wcześniej. Np. abc.mydomain.com, www.mydomain.com, K2k.mydomain.com i itp.

Aby sprawdzić, czy działa, spróbuj ping utility ping (insert anything here).mydomain.com i powinieneś otrzymuj odpowiedzi z IP.IP.IP.IP

Następnie spróbuj przeglądać, http: / / (Wstaw anything tutaj). mydomain.com/, ty powinien dostać tę samą stronę internetową, którą ty skonfigurować.

Źródło

 16
Author: notandy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-11 04:06:54

Nie można utworzyć rekordu wieloznacznego (*) w DNS Microsoftu, ale można utworzyć rekord wieloznaczny ( * ) CNAME. Jeśli wszystko, co próbujesz zrobić, to skierować wszystkie subdomeny do określonego adresu IP, to zadziała. Na przykład, jeśli masz rekord a dla www.mydomain.com, możesz dodać CNAME rekord dla *.mydomain.com i wskazać go na www.mydomain.com. Nazwa hosta w nagłówku żądania nadal będzie subdomeną, więc Twoja aplikacja internetowa powinna być w stanie ją złapać i obsłużyć, jeśli chcesz.

 5
Author: Centijo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-20 11:55:06

Możesz użyć IIS, jeśli używasz Instalatora platformy internetowej ( http://www.microsoft.com/web/downloads/platform.aspx ) i zainstalować moduł "URL Rewrite". Jeśli dodasz rekord "A", taki jak"*. example.com", pozwala to na wysłanie wszystkich subdomen na twój serwer IIS. Na serwerze IIS po prostu dodajesz regułę przepisywania adresu URL do domyślnej strony internetowej, aby zrobić cokolwiek chcesz, na przykład przekierować do innego adresu URL. Gdy użytkownik wchodzi, powiedz: "xyz.example.com", Możesz przekierować na "example.com", oraz punkt wszystkie nieznane subdomeny do domeny głównej. Kroki są:

  1. Install Web Platform Installer: http://www.microsoft.com/web/downloads/platform.aspx

    Uruchom go, wyszukaj "URL Rewrite" i zainstaluj go.

  2. Przejdź do domyślnej strony internetowej i otwórz "przepisanie adresu URL".

  3. Kliknij "Dodaj reguły" po prawej stronie.

  4. Nazwij regułę i ustaw:

    Requested URL: Matches the Pattern

    Za pomocą: Wyrażenia Regularne

    Wzór: (.*)

    Grupowanie Logiczne: Dopasuj Wszystkie

  5. Dodaj nowy warunek (kliknij "Dodaj.."przycisk), i ustaw:

    Wejście warunkowe: {CACHE_URL}

    Sprawdź czy input string: pasuje do wzorca

    Pattern (Modyfikuj w razie potrzeby): (http|https)://(.*?)\.rootdomain\.tld

    Kliknij [OK].

  6. Teraz przewiń w dół do akcji i ustaw:

    Typ Akcji: Redirect

    Redirect URL (Modyfikuj w razie potrzeby): {C:1}://rootdomain.tld{R: 0}

"{C:#} " i "{R:#} "pochodzą z okien testowych po kliknięciu przycisków "Test pattern" obok wpisów wzorca regex. Możesz dopasować część wartości serwera i użyć ją później.

Możesz również skorzystać z tej porady przy przekazywaniu HTTP / HTTPS w adresie URL ("{C:1}" w kroku 6 powyżej): http://weblogs.asp.net/owscott/url-rewrite-protocol-http-https-in-the-action

 4
Author: James Wilkins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-10 21:09:12

Update 2: Link nie działa, uaktualnij do IIS 10, obsługuje teraz symbole wieloznaczne.

UPDATE: to działa przez jakiś czas, po chwili zostałem zbombardowany przez wiele wniosków nadchodzących. Nie polecam tej metody.

Upewnij się, że rekordy DNS są poprawnie skonfigurowane (rekord CNAME *->@) i będzie działać bez zarzutu. Testowane z wieloma domenami.

Link jest uszkodzony teraz używany do be http://pzxc.com/apache-style-wildcard-hostname-rewrite-rules-in-iis

 0
Author: Damon Earl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-22 20:06:20

Dla użytkowników, którzy nie mogą uaktualnić do IIS 10+, nie jest bardzo trudne włączenie obsługi nazw wieloznacznych hosta za pomocą odwrotnego serwera proxy.

Przykład HTTP jest jak poniżej, podczas gdy inna konfiguracja to tylko kilka kroków.

  1. Utwórz stronę catch-all, która wiąże się z*: 80 i no host name.
  2. Utwórz pierwszą stronę, która wiąże się z*: 8091 i no host name.
  3. Utwórz drugą stronę, która wiąże się z*: 8092 i no host name.
  4. Przetestuj obie strony i ruszaj dalej.
  5. Install ARR i moduł przepisywania adresów URL.
  6. Tworzenie reguł przepisywania na stronie catch-all, aby wysyłać żądania do dwóch stron,

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="site1" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^(.*).site1.com$" />
                    </conditions>
                    <action type="Rewrite" url="http://localhost:8091/{R:0}" />
                </rule>
                <rule name="site2" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^(.*).site2.com$" />
                    </conditions>
                    <action type="Rewrite" url="http://localhost:8092/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
    

Zauważ, że na poziomie serwera tryb proxy ARR musi być włączony,

    <system.webServer>
        <proxy enabled="true" />
    </system.webServer>

Nazwa hosta IIS 10 wildcard jest prostsza i ma również lepszą wydajność, ponieważ ARR ma swój narzut (ale ogólnie rzecz biorąc nieistotny).

 0
Author: Lex Li,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-18 00:39:53