Servus,
ein dolles Device (SSL-VPN) in unserem Netz sorgt dafür, dass Requests mit "/" zu "%2F" umgebogen werden. Da kommt dann aber Squirrelmail ausm Tritt (und andere Web-Apps auch) aufm apache.
Ich hab noch nie was mit mod_rewrite gemacht und trotz Sucherei (und ja, ich hab die Doku gelesen) hab ich auch nichts für mich anpassbares gefunden bzw. es selbst nicht hinbekommen.
Ich such also ein mod_rewrite, das die gesamte URL nach %2F durchsucht und durch / ersetzt. Anyone?!
Achja: AllowEncodedSlashes ist leider nicht die Lösung und nein, ich kann das doofe Device nicht einfach tauschen :)
Merci vielmals!
aus %2F einen / in der URI machen
-
- Project Manager
- Posts: 11179
- Joined: 2003-02-27 01:00
- Location: Hamburg
Re: aus %2F einen / in der URI machen
Mit mod_rewrite kannst Du nur eine feste, keine variable, Anzahl an Vorkommen ersetzen. Daher wirst Du jeden einzelnen möglichen URL auf die jeweilige Anzahl der %2F prüfen und eine RewriteRule anlegen müssen. Für ein paar URL mag sich dieser Aufwand ja noch lohnen, aber so ab 100 URL dürfte das Beheben des eigentlichen Problems billiger und schneller sein.
Die einfachste RewriteRule müsste in etwa so aussehen:
Die einfachste RewriteRule müsste in etwa so aussehen:
Code: Select all
RewriteRule ([a-zA-Z0-9_+-])%2F $1/
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
-
- Posts: 150
- Joined: 2004-12-15 16:48
Re: aus %2F einen / in der URI machen
Mit dem Flag [N] müsste man eigentlich eine Art Schleife bzw. Rekursion hinbekommen?! Ich habe gerade keinen Apache zum Testen zur Hand, aber ein erster Lösungsansatz könnte so aussehen.Joe User wrote:Mit mod_rewrite kannst Du nur eine feste, keine variable, Anzahl an Vorkommen ersetzen. Daher wirst Du jeden einzelnen möglichen URL auf die jeweilige Anzahl der %2F prüfen und eine RewriteRule anlegen müssen.
Code: Select all
RewriteRule ^/(.*)%2F(.*)$ $1/$2
RewriteRule ^.*%2F - [N]
-
- Posts: 44
- Joined: 2003-11-30 23:41
Re: aus %2F einen / in der URI machen
Erstmal danke für Eure Antworten, allerdings passiert weder beim einen noch beim anderen Vorschlag irgendwas, trotz diverserer rumspielereien (mod rewrite ist übrigens enabled :) ). Die URI ist wie folgt aufgebaut:
Code: Select all
http://host/squirrelmail/src/right_main.php?PG_SHOWALL=0&sort=0&startMessage=1&mailbox=INBOX%2Fsomething
-
- Project Manager
- Posts: 11179
- Joined: 2003-02-27 01:00
- Location: Hamburg
Re: aus %2F einen / in der URI machen
Ohne Gewähr:
Code: Select all
RewriteRule ^(.*)%2F(.*) $1/$2
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
-
- Posts: 44
- Joined: 2003-11-30 23:41
Re: aus %2F einen / in der URI machen
Code: Select all
http://host/squirrelmail/src/right_main.php?PG_SHOWALL=0&sort=0&startMessage=1&mailbox=INBOX%2Fsomething
Achja: Andere rewrites klappen (z. B. http zu https und so). Nur um zu beweisen, dass das mod_rewrite geladen ist :)ERROR: Could not complete request.
Anfrage: SELECT "INBOX%2Fsomething"
Reason Given: Mailbox does not exist
Ich würde an sich sagen, dass Eure Vorschläge (nochmal vielen Dank dafür) funktionieren müssten. Meine eigenen Versuche waren ähnlich. Ich raffs im Moment überhaupt nicht.
-
- Posts: 23
- Joined: 2008-04-10 18:58
- Location: Südoldenburger Land
Re: aus %2F einen / in der URI machen
Ich vermute, das %2 von %2F wird als Variable interpretiert. Ich schlage %%2F und %2F mal vor.
-
- Posts: 44
- Joined: 2003-11-30 23:41
Re: aus %2F einen / in der URI machen
Hatte ich auch schon versucht (aber jetzt nochmal). Leider ohne Erfolg. mod_rewrite erkennt "%2F" einfach nicht. Die Sau :)terx` wrote:Ich schlage %%2F und %2F mal vor.
Ich hab mal einen "/" in einer OR Bedingung erkennen lassen, den hat er gefressen. Komische Sache das.