Terminal: Reverse Proxy und die relativen URLs

Hallo Leutz

Steh mit meinem ReverseProxy leider total an. Folgendes Problem:

www.berlakovich.net/quimby -> Klappt nicht (www.berlakovich.net/login.php)
www.berlakovich.net/quimby/ -> Klappt (www.berlakovich.net/quimby/login.php)

Die Konfiguration: Client <-> ReverseProxy <-> BackendServer

www.berlakovich.net = ReverseProxy

Außerdem habe ich ein Problem mit relativen URLs. So schickt mein PHP Programm z.b. ein Redirect mit Location: login.php, woraufhin der Client folgende Antwort bekommt: www.berlakovich.net/login.php obwohl es ja lauten müsste: www.berlakovich.net/quimby/login.php

Gibt es irgendeine Möglichkeit dies zu lösen ohne absolute URLs zu verwenden?

lg

  1. Moin!

    Steh mit meinem ReverseProxy leider total an. Folgendes Problem:

    www.berlakovich.net/quimby -> Klappt nicht (www.berlakovich.net/login.php)
    www.berlakovich.net/quimby/ -> Klappt (www.berlakovich.net/quimby/login.php)

    Sind ja auch zwei ganz unterschiedliche Ressourcen.

    Das erste ist die Datei quimby im Hauptverzeichnis.

    Das zweite ist das, was der Server so als Verzeichnisstandardseite auswirft, für das _Verzeichnis_ quimby (nicht Datei).

    Man könnte den Server natürlich so konfigurieren, dass er beide URLs als gleichbedeutend ansieht und sich identisch verhält.

    Außerdem habe ich ein Problem mit relativen URLs. So schickt mein PHP Programm z.b. ein Redirect mit Location: login.php, woraufhin der Client folgende Antwort bekommt: www.berlakovich.net/login.php obwohl es ja lauten müsste: www.berlakovich.net/quimby/login.php

    Gibt es irgendeine Möglichkeit dies zu lösen ohne absolute URLs zu verwenden?

    Nein. Der Location-Header muss ZWINGEND eine absolute URL enthalten, das ist im Standard so vorgeschrieben. Dass relative URLs auch funktionieren, ist eine reine Nettigkeit einzelner Server. Offenbar ist DEIN Server aber nicht so nett und demonstriert dir eindrucksvoll, warum es immer eine gute Idee ist, sich ganz konservativ 100% an die Buchstaben der RFCs zu halten, und an dieser Stelle keinem Individualismus zu frönen.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hi,

      Nein. Der Location-Header muss ZWINGEND eine absolute URL enthalten, das ist im Standard so vorgeschrieben. Dass relative URLs auch funktionieren, ist eine reine Nettigkeit einzelner Server.

      und Clients. Gerade habe ich bei der Analyse einer von mir betreuten Website bemerkt, dass ein Aufruf zu einem externen Server ein "Location: /blank.gif" zurückliefert; das Analyse-Tool erzeugt hieraus eine URL innerhalb des Website-Servers, nicht des externen Servers.

      Offenbar ist DEIN Server aber nicht so nett und demonstriert dir eindrucksvoll, warum es immer eine gute Idee ist, sich ganz konservativ 100% an die Buchstaben der RFCs zu halten, und an dieser Stelle keinem Individualismus zu frönen.

      Jau. Es beweist außerdem, dass "es funktioniert" eine absolut irrelevante Aussage ist. Wenn ich mich selbst zitieren darf: https://forum.selfhtml.org/?t=156780&m=1019885

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
    2. Moin!

      Steh mit meinem ReverseProxy leider total an. Folgendes Problem:

      www.berlakovich.net/quimby -> Klappt nicht (www.berlakovich.net/login.php)
      www.berlakovich.net/quimby/ -> Klappt (www.berlakovich.net/quimby/login.php)

      Sind ja auch zwei ganz unterschiedliche Ressourcen.

      Das erste ist die Datei quimby im Hauptverzeichnis.

      Das zweite ist das, was der Server so als Verzeichnisstandardseite auswirft, für das _Verzeichnis_ quimby (nicht Datei).

      Man könnte den Server natürlich so konfigurieren, dass er beide URLs als gleichbedeutend ansieht und sich identisch verhält.

      Außerdem habe ich ein Problem mit relativen URLs. So schickt mein PHP Programm z.b. ein Redirect mit Location: login.php, woraufhin der Client folgende Antwort bekommt: www.berlakovich.net/login.php obwohl es ja lauten müsste: www.berlakovich.net/quimby/login.php

      Gibt es irgendeine Möglichkeit dies zu lösen ohne absolute URLs zu verwenden?

      Nein. Der Location-Header muss ZWINGEND eine absolute URL enthalten, das ist im Standard so vorgeschrieben. Dass relative URLs auch funktionieren, ist eine reine Nettigkeit einzelner Server. Offenbar ist DEIN Server aber nicht so nett und demonstriert dir eindrucksvoll, warum es immer eine gute Idee ist, sich ganz konservativ 100% an die Buchstaben der RFCs zu halten, und an dieser Stelle keinem Individualismus zu frönen.

      • Sven Rautenberg

      Problem daran ist, dass das ganze auch von innen erreichbar sein soll und von innen lautet die Adresse natürlich nicht www.berlakovich.net/quimby/. Insofern wäre natürlich ein passendes Rewrite bevor der ReverseProxy die Antwort an den Client zurückschickt toll. Leider kenn ich mich mit mod_rewrite nur bedingt aus... Oder gibt es eine andere Möglichkeit das mal abgesehen vom PHP Script zu ändern

      lg

      1. Moin!

        Problem daran ist, dass das ganze auch von innen erreichbar sein soll und von innen lautet die Adresse natürlich nicht www.berlakovich.net/quimby/.

        Sondern www.internal/quimby/.

        Spricht doch nichts dagegen, alle Instanzen des nicht funktionierenden Aufrufs (ohne / am Ende) zu eliminieren und nur noch Links mit / am Ende zu verwenden.

        Dasselbe gilt eben auch für die Redirects.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."