Page 1 of 1

Zusätzliche Apache-Direktiven: Problem bei Proxy-Konfiguration mit mod_substitute

Posted: Thu 27. Sep 2018, 04:40
by Enigma
Hallo,

ich habe das Feld "Zusätzliche Apache-Direktiven" in der (Sub-)Domainkonfiguration genutzt, um einen Proxy einzurichten, damit ich einen externen Dienst unter eigener Domain nutzen kann. Das funktioniert auch bestens - bis man die Domainkonfiguration erneut aufruft und speichert.

Es wird das Apache-Modul mod_substitute dazu verwendet, einige Links auszublenden etc. Das sieht so aus (nur der entsprechende Part):

Code: Select all

<Location />
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute "s|<a href=\"dns.php\?domain=.*</a>|&nbsp;|i"
    Substitute "s|<a href=\"stats.php\?domain=.*</a>|&nbsp;|i"
    Substitute "s|<a href=\".*Pakete & Server</a>|&nbsp;|i"
    Substitute "s|<a href=\"subdomains.php\?domain=.*</a>|&nbsp;|i"
    Substitute "s|<a href=\"webspace.php\?id=.*</a>|&nbsp;|i"
    Substitute "s|<a href=\"mysql.php\?id=.*</a>|&nbsp;|i"
    Substitute "s|<a href=\"php.php\?id=.*</a>|&nbsp;|i"
</Location>
Ruft man die Domainkonfiguration erneut auf, wird allerdings die Session-ID hinzugefügt, zudem am unpassenden Ort:

Code: Select all

<Location />
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute "s|<a href=\?sid=be46vt8tqmknb4182t52latc5l"dns.php\?domain=.*</a>| |i"
    Substitute "s|<a href=\?sid=be46vt8tqmknb4182t52latc5l"stats.php\?domain=.*</a>| |i"
    Substitute "s|<a href=\?sid=be46vt8tqmknb4182t52latc5l".*Pakete & Server</a>| |i"
    Substitute "s|<a href=\?sid=be46vt8tqmknb4182t52latc5l"subdomains.php\?domain=.*</a>| |i"
    Substitute "s|<a href=\?sid=be46vt8tqmknb4182t52latc5l"webspace.php\?id=.*</a>| |i"
    Substitute "s|<a href=\?sid=be46vt8tqmknb4182t52latc5l"mysql.php\?id=.*</a>| |i"
    Substitute "s|<a href=\?sid=be46vt8tqmknb4182t52latc5l"php.php\?id=.*</a>| |i"
</Location>
Und weil's so viel Spaß macht, passiert das bei jedem Abspeichern gleich noch mal, sodass der Code immer länger wird.

Die Folge ist, dass in KeyHelp alle Domains mit einem roten Fehler-Icon angezeigt werden, da die VHost-Konfiguration fehlerhaft ist. Würde man versuchen, Apache neuzustarten, würde das nicht funktionieren und man hätte reichlich Ärger.

Ich kann den Code zwar jedes Mal neu einfügen, Spaß macht das aber nicht. Es wäre schön, wenn das behoben werden könnte.

Vielen Dank im Voraus!

Gruß
Jan

Re: Zusätzliche Apache-Direktiven: Problem bei Proxy-Konfiguration mit mod_substitute  [GELÖST]

Posted: Thu 27. Sep 2018, 10:01
by Alexander
Grüße,

ich fürchte, das bekomme ich erst behoben, wenn ich weg von den SIDs in den URLs bin.

Der Ausgabefilter sucht im gesamten Dokument nach HTML Tags wie "<a href=...", "<area href=...", "<form action=...", ... und hängt die SID an.
Das heißt, wenn du jetzt die Regel etwas anders schreiben könntest, so das sie für diesen Filter 'unsichtbar' ist, dann würde die SID auch nicht angehängt werden.

Ohne mich jetzt näher mit der Mächtigkeit der Regex des Apache-Modules auseinandergesetzt zu haben, sollte aber das folgende funktionieren:

Code: Select all

    Substitute "s|<a\s+href=\"dns.php\?domain=.*</a>|&nbsp;|i"

(Hab ein "\s+" nach dem <a ergänzt, für 1 oder mehr Leerzeichen, damit wird die SID nicht angehängt)

Re: Zusätzliche Apache-Direktiven: Problem bei Proxy-Konfiguration mit mod_substitute

Posted: Thu 27. Sep 2018, 10:22
by Enigma
Hmpf, da hätte ich auch selbst drauf kommen können - reguläre Ausdrücke sind mein Steckenpferd. War wohl schon etwas spät... :oops: :roll: Na ja, ein Bug ist es trotzdem.

Vielen Dank für die schnelle Rückmeldung samt funktionierendem Lösungsvorschlag!

Gruß
Jan

Re: Zusätzliche Apache-Direktiven: Problem bei Proxy-Konfiguration mit mod_substitute

Posted: Thu 27. Sep 2018, 12:55
by select name from me;
:!: Das ist ein typisches Beispiel, warum ich bei Keyweb bin.

Es gibt ein Problem, es wird offen kommuniziert und falls möglich ein Lösungsvorschlag genannt.

Kein Blabla.

Ich weiß woran ich bin und kann auch mit meinen Kunden verbindlich kommunizieren.

Danke. :)