Apache mod_proxy Konfiguration

Laudian

Moderator
Teammitglied
Nabend,

da ich mit der mobilen Website dieses Forums nach wie vor extrem unzufrieden bin, habe ich mir vorgenommen, selber dafür zu sorgen, dass es besser wird. Da man auf dem iPhone leider keine Browserplugins installieren kann, muss das ganze serverseitig ablaufen.

Meine Idee ist folgende:
Mithilfe von mod_proxy benutze ich meinen Webserver (Apache 2.2) als Proxyserver. Anschließend werde ich mit mod_substitute einfach nur "width=device-width" durch "width=768" (oder einen anderen Wert) ersetzen, wodurch ich auf meinem iPhone die Desktopansicht bekommen werde. Falls nötig kann ich auch den User-Agent anpassen.

Der Proxy selbst funktioniert bereits, das Ergebnis ist unter http://laudian.de/pcgh1 zu sehen.

Code:
<VirtualHost *:80>

    ProxyPreserveHost Off
    ServerName laudian.de
	
    <Location /pcgh1/>
        ProxyPass http://extreme.pcgameshardware.de/
        ProxyPassReverse http://extreme.pcgameshardware.de/
        RequestHeader    unset  Accept-Encoding
        AddOutputFilterByType SUBSTITUTE text/html
        Substitute s/width=device-width/width=768/ni
     </Location>

</VirtualHost>

Nun wird natürlich nur die Startseite über den Proxy geladen, sobald ich einen Link anklicke verbinde ich mich wieder direkt mit dem PCGH-Server. Deswegen benutze ich proxy_html, um die Links ebenfalls anzupassen. Sobald ich aber folgende Zeile zu meiner Config hinzufüge, wird das Layout der Seite sehr merkwürdig, zu sehen unter Die Hardware-Community fur PC-Spieler - PC GAMES HARDWARE EXTREME
Code:
SetOutputFilter  proxy-html

Code:
<Location /pcgh/>
   ProxyPass http://extreme.pcgameshardware.de/
   ProxyPassReverse http://extreme.pcgameshardware.de/
   RequestHeader    unset  Accept-Encoding
   SetOutputFilter  proxy-html
   #ProxyHTMLURLMap http://extreme.pcgameshardware.de/ /pcgh/
   #ProxyHTMLURLMap / /pcgh/
   #ProxyHTMLURLMap  /pcgh/ /pcgh/
</Location>

Nach meinem Verständnis sollte diese Zeile aber eigentlich keinen Effekt haben, solange noch keine Filter deklariert sind, trotzdem ist er vorhanden. Treibt sich hier womöglich jemand rum, der eine Idee hat ?

Edit:
Ich habe die Links jetzt einfach durch folgenden Code ersetzen lassen:
Code:
Substitute s|extreme.pcgameshardware.de|laudian.de/pcgh1|ni

Das Endergebnis sieht damit so aus:
Code:
<Location /pcgh1/>
    ProxyPass http://extreme.pcgameshardware.de/
    ProxyPassReverse http://extreme.pcgameshardware.de/
    RequestHeader    unset  Accept-Encoding
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute s/width=device-width/width=768/ni
    Substitute s|extreme.pcgameshardware.de|laudian.de/pcgh1|ni
</Location>

Bisher funktioniert alles, trotzdem würde ich gerne noch herausfinden, welchen Fehler ich bei meiner ersten Vorgehensweise gemacht habe.

Achtung: Loggt euch auf keinen Fall über meine Links ein, das ist extrem unsicher.
 
Zuletzt bearbeitet:
Wo genau der Fehler gewesen ist, kann ich dir auch nicht sagen. Aber ich vermute mal, das der Parser für proxy-html ein wenig Dünnpfiff produziert hat. Denn laut meiner Quellcode-Analyse wurden dir die abschließenden Tags der Listen zerstört, wodurch sich die Foren nach und nach ineinander verschachtelt haben. Ich denke mal, das du bei der Konfiguration von proxy-html noch irgend etwas vergessen hattest. Da du aber das gewünschte Ergebnis hast, solltest du es dabei belassen. ;)
 
So, nächstes Problem:

Nachdem die Weiterleitung jetzt prinzipiell funktioniert, würde ich mich auch gerne einloggen können.
Da der Login hier über Cookies geregelt wird, muss ich dafür die Cookies an die neue Domain anpassen, dafür gibt es ProxyPassReverseCookieDomain und ProxyPassReverseCookiePath.
Nach meinem Empfinden habe ich die beiden richtig konfiguriert, es sieht jetzt folgendermaßen aus:

Code:
<Location /pcgh1/>
    ProxyPass http://extreme.pcgameshardware.de/
    ProxyPassReverse http://extreme.pcgameshardware.de/
    ProxyPassReverseCookiePath / /pcgh1
    ProxyPassReverseCookieDomain .pcgameshardware.de laudian.de
    ProxyPassReverseCookieDomain extreme.pcgameshardware.de laudian.de
    ProxyPassReverseCookieDomain pcgameshardware.de laudian.de
    RequestHeader    unset  Accept-Encoding
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute s/width=device-width/width=768/ni
    Substitute s|extreme.pcgameshardware.de|laudian.de/pcgh1|ni
</Location>

Beim Login wird das Cookie COMMUNITY trotzdem mit der Domain .pcgameshardware.de erstellt. Einige andere Cookies werden aber richtig angepasst. Jemand einen Vorschlag ?
 
Zuletzt bearbeitet:
So, nach vielen vielen Stunden habe ich es jetzt hinbekommen.

Da das COMMUNITY-Cookie von pcgameshardware.de und nicht von extreme.pcgameshardware.de ausgegeben wird, musste ich die Verbindung zu diesem ganz einfach auch über den Proxy laufen lassen. Hätte ich auch mal früher drauf kommen können...
Damit ist das Forum bei mir am iPhone SE jetzt nicht mehr responsive und ich bekomme endlich die vollen Threadtitel zu Gesicht ;-)
 
Leider gibt Tapatalk aber auch keine vollwertige Version des Forums aus, meine Kollegen beschweren sich regelmäßig über fehlende Modtools...
Ich will die Website unterwegs einfach genau wie am PC benutzen können.

Außerdem macht es mir auch einfach Spaß, der Server ist quasi mein Hobby ;-)
 
Ich finde es immer wieder interessant, wie unterschiedlich die mobilen Browser das ganze verarbeiten. Bei mir an meinem Lumia 930 Windows 10 und Edge ist das Forum zwar auch responsive, zeigt mir aber die Threadtitel immer komplett an. Einzig die Werbung für Tapatalk geht mir auf den Geist. Die verdeckt nämlich oben die Navigationbar :lol:

Soweit ich das verstanden habe, handelt es sich bei diesen Proxy-Mods ja zumindest was URL's und Cookies angeht nur um Find und Replace in den jeweiligen Headern bzw. ums Markup. Normalerweise häötte es schon mit deinem zuletzt gepostetem schon funktionieren müssen.

Mir macht da aber schon etwas anderes ein wenig mehr sorgen. Ich habe eben mal beim durchschauen der PCGH-Cookies einen Cookie mit der Bezeichnung bb_password gefunden und da der dort hinterlegte Hash 32 Stellen hat, gehe ich davon aus, das es sich hierbei wohl um den MD5-Passworthash des Nutzers handeln könnte. Es scheint zwar salted zu sein. Aber so wirklich in Ordnung finde ich das nicht. Sowas hat eigentlich in den Cookies nichts verloren. Das gilt übrigens auch für die User-ID. Allgemein die meisten Cookies können auch genauso gut in eine Session gespeichert werden.
 
Zurück