Encode url


I’m writing my first nginx module. The module at some point uses the
“Location” header to redirect to user to a landing page. The redirected
url has many arguments which could potentially contain spaces, slashes
or any other non-alphabetic chars.

Is there a function that’ll escape then and convert them to %20, %2f and
so on?


Posted at Nginx Forum:


I really need the same for rewrite and variables like $http_referer or

There were several questions regarding that in the past, but I can’t
find a solution.

An example:

url rewriting

location ~ \.htm$ {
  rewrite ^/([a-z0-9_]+)\.htm$ /$1.php?uri=$request_uri break;
  proxy_next_upstream error timeout http_500 http_503 http_404

proxy_pass http://backend;

In some rules $request_uri contains arguments with ampersand and as it
isn’t escaped, those won’t be part of the “uri”-var.

I really like to have a function like url_encode() or something similar
to str_replace().


Posted at Nginx Forum:

Same problem here:

Posted at Nginx Forum: