2016-08-31 5 views
1

Ich übergebe einen Base64-codierten Parameter mit GET. Nach dem Konvertieren in base64 habe ich eine Zeichenfolge mit Schrägstrichen, plus und gleich Zeichen, die meine mod_rewrite Regel brechen. Meine mod_rewrite Regel istEscaping Gleichzeichen, plus Zeichen und Schrägstriche von mod_rewrite

RewriteEngine on 
RewriteRule ^page/(\w+)$ page.php?code=$1 

Der Code-Parameter ist base64. Gibt es eine Möglichkeit, diesen Zeichen automatisch zu entkommen?

Antwort

1

Versuchen [B] Flag verwendet, aber ich bin nicht sicher, entweder

RewriteRule ^page/(\w+)$ page.php?code=$1 [B] 

Die [B] Flag RewriteRule weist nicht-alphanumerische Zeichen zu entkommen, bevor die Transformation anzuwenden.

http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_b

+0

[B] ist genau das, was ich suchte. Allerdings habe ich auch einen Fehler mit der Regex gemacht. \ w + stimmt nur mit a-z0-9 überein. Die folgende Regel funktioniert perfekt ** RewriteRule^page/([^ /] *) $ page.php? Code = $ 1 [B] ** –