Full URL parameter in nginx

Francis Daly francis at daoine.org
Tue Jul 26 18:55:07 UTC 2016

On Tue, Jul 26, 2016 at 03:46:19AM -0400, iivan wrote:

Hi there,

> ## nginx rule: 
> rewrite ^/(.*)?$ /index.cfm?event=saveURL=$1$is_args$args last; 
> ## this URL: 
> http://www.mywebsite.com/http://www.anotherwebsite.com/index.php?lvl=cmspage&pageid=14&id_article=52
> ## Return only: 
> http://www.anotherwebsite.com/index.php?lvl=cmspage

That config will get nginx to do an internal rewrite to the location

What does your /index.cfm do?

That is: nginx does not return
http://www.anotherwebsite.com/index.php?lvl=cmspage, index.cfm does.

You *could* try to do the proper encoding/escaping in the rewrite,
but I am not aware of a simple nginx function that will help you.

I *suspect* that if you replace

  rewrite ^/(.*)?$ /index.cfm?event=saveURL=$1$is_args$args last;


  rewrite ^/(.*)?$ /index.cfm?event=saveURL=$1$is_args$args? last;

(extra ? at the end), or, equivalently, with

  rewrite ^/(.*)?$ /index.cfm?event=saveURL=$1 last;

(no ? at the end, and remove $is_args$args), then you will be able to
tell your /index.cfm to use all of the QUERY_STRING after "event=saveURL="
as the bulk of the thing that should be returned, and it might all do
what you want.

Good luck with it,

Francis Daly        francis at daoine.org

More information about the nginx mailing list