none
IIS 7.5 - URL Rewrite - HTTP-Fehler 404.4 RRS feed

  • Frage

  • Guten Tag,
    ich moechte IIS 7.5 verwenden, um URL's umschreiben zu lassen. Installiert sind Application Request Routing 2.0 und IIS URL Rewrite Modul 2. Mein Betriebssystem ist Windows 7.
    Wenn ich im IIS-Manager bei der Default Web Site unter URL Rewrite beispielsweise eine neue Regel hinzufuege und einen regulaeren Ausdruck definiere, damit die URL "http://localhost/" mit "http://www.google.de" umschrieben wird, bekomme ich beim Aufruf im Browser folgenden Fehler:


    HTTP-Fehler 404.4 - Not Found
    Der gesuchten Ressource ist kein Handler zugeordnet.


    Verwendet wird der StaticFile Handler und in dessen Anforderungspfad ist "*" eingetragen. Die Hinweise auf der Statusseite zur Loesung des Problems und in diversen Online-Dokumentationen beheben das Problem nicht.

    Was ist der Grund fuer den 404.4 Fehler und wie kann das URL Rewriting realisiert werden?

    Freitag, 3. Dezember 2010 15:09

Antworten

Alle Antworten

  • Hat niemand eine Idee? Ich denke doch, dass dieses Problem nicht nur bei mir auftritt ...  Muss beim URL Rewrite noch etwas Spezielles beachtet werden? Vielleicht auch mit den Handlern?
    Dienstag, 7. Dezember 2010 09:36
  • Im meinem Verzeichnis "C:\inetpub\wwwroot" liegt folgende Datei "test/test.html". Gebe ich beim URL Rewrite als Rewrite URL "test/test.html", dann funktioniert das Rewriting!

    Ich möchte aber auf einen anderen Server wechseln und das funktioniert leider nicht (HHTP-Fehler 404.4). Wieso?

    Mittwoch, 8. Dezember 2010 11:15
  • Im meinem Verzeichnis "C:\inetpub\wwwroot" liegt folgende Datei "test/test.html". Gebe ich beim URL Rewrite als Rewrite URL "test/test.html", dann funktioniert das Rewriting!

    Ich möchte aber auf einen anderen Server wechseln und das funktioniert leider nicht (HHTP-Fehler 404.4). Wieso?

    Wenn Du auf einen Server umleiten willst, solltest Du UrlRedirect und nicht UrlRewrite nehmen. Im IIS 7.5. gibt es hierfür die Einstellungen für "HTTP Redirect". Dort kannst Du dann die Ziel URL eingeben.

    Alternativ kannst Du auch etwas eigenes programmieren (bspw. per ASP.NET, es reicht dafür ein generischer Handler, der alle Requests entgegennimmt, eigentlich müsste es auch rein über die global.asax gehen) und dort per Response.Redirect( <ZielUrl> ) umleiten. UrlRewriting ist für interne Aufrufe derselben Anwendung gedacht, nicht für Weiterleitungen auf externe Adressen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 8. Dezember 2010 11:52
    Moderator
  • Danke für die Antwort. Ein Redirect soll nicht benutzt werden.

    Es ist also nicht möglich den URL Rewrite zu verwenden, wenn ein anderer Server angesprochen werden soll? Ich möchte den Rewrite auf einen Apache Tomcat setzen und hier kommt der 404.4-Fehler.

    Gibt es keine Möglichkeit mit ARR den Rewrite zu ermöglichen?

    Mittwoch, 8. Dezember 2010 12:29
  • Danke für die Antwort. Ein Redirect soll nicht benutzt werden.

    Es ist also nicht möglich den URL Rewrite zu verwenden, wenn ein anderer Server angesprochen werden soll? Ich möchte den Rewrite auf einen Apache Tomcat setzen und hier kommt der 404.4-Fehler.

    Gibt es keine Möglichkeit mit ARR den Rewrite zu ermöglichen?

    Wie gesagt, Rewriting ist für eine interne Umschreibung der URL gedacht. Von Haus aus wird mit dem Modul das von dir gewünschte AFAIK nicht unterstützt.

    Du kannst natürlich folgendes machen:

    Abfangen der Requests (bspw. mit einem generischen Handler)
     -> Laden der Zielseite per HttpWebRequest, ggfs. mit Übergabe der GET und POST Parameter
       -> Ausgabe der Rückgabe der Zielseite an den Client

    Dabei gibt es natürlich einige Fallstricke zu beachten. Encoding, Weitergabe Referrer (wenn benötigt), Erkennen, Aufbau und Wiederverwendung von Sessions (nicht nur die zwischen Client und deiner Anwendung sondern auch die zwischen deiner Anwendung und der Zielanwendung), ...

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 8. Dezember 2010 14:03
    Moderator
  • Hab ein Lösung für das Problem gefunden. Man muss im IIS-Manager unter ARR (Cache für das Routing von Anwendungsanforderungen) bei den Serverproxyeinstellungen die Checkbox "Proxy aktivieren" anklicken und schon funktioniert das URL Rewriting auf eine Seite welche auf einem anderen Server liegt.

    Ein paar hilfreihe Tipps: http://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/
    Donnerstag, 23. Dezember 2010 13:30