user206532
user206532

Reputation:

Replacing %26 by & in query string with mod_rewrite

Have tried countless RewriteRule, including those suggested by previous posts. Unefortunately, none works with my problem. Any help appreciated.

Upvotes: 0

Views: 1789

Answers (2)

Gumbo
Gumbo

Reputation: 655239

Try this rule:

RewriteCond %{QUERY_STRING} ^(([^%]+|%([013-9a-fA-F][0-9a-fA-F]|2[0-57-9a-fA-F]))*)%26(.*)
RewriteRule ^ %{REQUEST_URI}?%1&%4 [N]

Upvotes: 3

sanmai
sanmai

Reputation: 30881

  1. First, add to you vhost config: (adding to .htaccess won't work)

    RewriteMap escape int:escape

  2. Next, replace any occurrence of a variable in question with ${escape:$N}, e.g. replace

    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^([^/]+)$ ?query=$1 [L,QSA]
    with
    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^([^/]+)$ ?query=${escape:$1} [L,QSA]

Upvotes: 0

Related Questions