none
Redirect reagiert nicht auf Ziel RRS feed

  • Frage

  • Hallo zusammen,

    ich arbeite gerade an einer kleinen Änderung bis zum Releasewechsel einer externen Application.
    Selbst habe ich mich noch nicht groß mit IIS beschäftigen müssen.

    Im Grunde möchte ich nur eine Umleitung einrichten. 
    Das ist soweit erfolgt und funktioniert auch bedingt. 
    -> Subdomain.Domain auf Subdomain.Domain/xxx/xxx

    Ich möchte quasi die notwendige manuelle Eingabe von /xxx/xxx entbehrlich und benutzerfreundlich machen.

    Ist die Regel jedoch aktiv, wird die Ziel web.config mit einem application-Aufruf ignoriert. Ebenfalls wird eine dort abgelegte htm nicht aufgerufen, selbst wenn ich direkt darauf umleite.
    -> "Webseite kann nicht angezeigt werden". 

    Deaktiviere ich die Regel und rufe die URL direkt auf, dann funktioniert es. 

    Mir erschließt sich nicht ganz, woran das liegen mag.

    Vereinfachter Auszug der web.config vom root:
    match URL= (.*)
    condition: add input= HTTP_HOST pattern=^Subdomain.Domain$
    redirect: url=/xxx/xxx

    Ehrlich gesagt habe ich nicht erwartet, dass mich das heute so viel Zeit kosten würde :-)
    Vermutlich ist es für Euch Kenner nur eine Kleinigkeit.

    Danke und Gruß~

    Mittwoch, 25. März 2020 16:08

Antworten

  • Du kannst eine kleine HTML-Seite (Index, Default, "Standarddokumnet") auf der Rootadresse einrichten, die dann beim Lade-Ereignis die Url auf die andere Adresse umleitet.
    Dazu muss nur die "location" der aktiven Seite geändert werden.

    Dies stellt auch sicher, dass keine anderen Aufrufe automatisch umgeleitet werden.
    Somit kann man dann beide Verfahren anwenden.

    Ich frage mich allerdings, wofür diese Umleitung gut sein soll. Kannst du deine Webpage nicht auf dem Root einrichten? Ist es denn unzumutbar für die User, sich den korrekten Link in die Favoriten zu packen?

    • Als Antwort markiert EMikroDE Freitag, 27. März 2020 07:02
    Donnerstag, 26. März 2020 10:11

Alle Antworten

  • Ich denke die absolute Url-Angabe ist nicht korrekt:
    https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module

    In den Beispielen wird die neue url immer relativ angegeben: url="xxx".
    In deinem Beispiel wäre also "xxx/yyy" erforderlich, da der zusammengesetzte Aufruf dann wieder "subdamain.domain/xxx/yyy" ist und eben nicht "subdamain.domain//xxx/yyy".

    PS:
    Da du aber eine generelle Urlumleitung mit ".*" einrichtest erscheint mir diese auch rekursiv, da diese für jeden Aufruf der mit der Domäne beginnt, gilt.
    Aber ob der IIS das dann erkennt weiß ich nicht.


    Mittwoch, 25. März 2020 18:16
  • Vielen Dank für deine Antwort. Ich habe bereits verschiedene Variationen ausprobiert. Jedoch nicht erfolgreich.

    Ich habe es dann zusätzlich mit Chrome getestet, sowie den Log geprüft:
    Chrome: ERR_TOO_MANY_REDIRECTS
    Logs: 20 Einträge für einen Aufruf ||| GET /xxx/xxx ||| sc-status 301

    Ich denke ich erkenne nun das Problem.
    Er leitet zwar wie gewünscht um, erkennt jedoch vermutlich wieder durch (.*) bzw. der Bedingung HTTP_HOST pattern="Subdomain.Domain" die selbe Domäne (wie "Der Suchende"schon anmerkte) und kommt so in einen Loop.

    Baue ich einen Redirect über "HTTP-Umleitung"/httpRedirect wird alles umgeleitet, was ich eigentlich nicht möchte. Nur die spezielle http-Bindung soll von Subdomain.Domain auf Subdomain.Domain/xxx/xxx 

    Habt ihr eine alternative Idee, oder wie ich die Rewrite-Abfrage dahin passend umbauen kann?

    Vielen Dank!

    Donnerstag, 26. März 2020 10:00
  • Du kannst eine kleine HTML-Seite (Index, Default, "Standarddokumnet") auf der Rootadresse einrichten, die dann beim Lade-Ereignis die Url auf die andere Adresse umleitet.
    Dazu muss nur die "location" der aktiven Seite geändert werden.

    Dies stellt auch sicher, dass keine anderen Aufrufe automatisch umgeleitet werden.
    Somit kann man dann beide Verfahren anwenden.

    Ich frage mich allerdings, wofür diese Umleitung gut sein soll. Kannst du deine Webpage nicht auf dem Root einrichten? Ist es denn unzumutbar für die User, sich den korrekten Link in die Favoriten zu packen?

    • Als Antwort markiert EMikroDE Freitag, 27. März 2020 07:02
    Donnerstag, 26. März 2020 10:11
  • So wie es einst von ehemaligen Kollegen initial eingerichtet und all die Jahre verwendet wurde, ist es nicht optimal und würde früher oder später sowieso Thema werden.
    Daher wollte ich eine quasi Server-unabhängige Bindung/Domain - und bestenfalls noch einfach - durch Wegfall der manuellen Eingabe des /Path. Derzeit erfolgt der Aufruf über den Hostname. Zudem muss er nur alle jubel Jahre mal aufgerufen werden, bzw. pro Konto theoretisch einmal.  

    Ich danke Dir für deine Unterstützung und werde mich etwas mit deinem Vorschlag auseinandersetzen.

    Danke und Gruß
    (Ich verstehe die Formatierung im Forum nicht - keine Ahnung, warum er nun die Font/Größe ändert)

    Freitag, 27. März 2020 07:02