What i would like to do is like Apache is to use multiple map files and
get the vars form them
i have tried the following and can only get one value $variable1
what is a rewrite to get $variable1
and $variable2
in one rewrite
rewrite ^(^/)/(. )$ /index.php?key1=$variable1&key2=$variable2 last;
map $uri $variable1 {
default 11;
/sub 7;
}
map $uri $variable2 {
default 78;
/pep 23;
}
Regards, David
Posted at Nginx Forum:
token
November 7, 2011, 11:08pm
2
On 7 Nov 2011 20h54 WET, [email protected] wrote:
What i would like to do is like Apache is to use multiple map files
and get the vars form them
i have tried the following and can only get one value $variable1
what is a rewrite to get $variable1
and $variable2
in one
rewrite
rewrite ^(^/)/(. )$ /index.php?key1=$variable1&key2=$variable2
last;
What are you trying to accomplish?
map $uri $variable1 {
default 11;
/sub 7;
If your URI is /sub $variable1 becomes 7.
}
map $uri $variable2 {
default 78;
/pep 23;
}
If your URI is /sub $variable2 becomes 23.
It works as it should. I don’t see any issue. Also your rewrite is
unnecessary. Try this:
return 301 /index.php?key1=$variable1&key2=$variable2;
Do you mean that the request URI can contain both /pep and /sub?Like
this:
http://example.com/sub/pep/other-stuff-if-any
If so then your matching must be done with a regex:
map $uri $variable1 {
default 11;
~/sub 7;
}
map $uri $variable2 {
default 78;
~/pep 23;
}
— appa
token
November 7, 2011, 11:13pm
3
On Mon, Nov 07, 2011 at 03:54:24PM -0500, token wrote:
Hi there,
What i would like to do is like Apache is to use multiple map files and
get the vars form them
i have tried the following and can only get one value $variable1
what is a rewrite to get $variable1
and $variable2
in one rewrite
rewrite ^(^/)/(. )$ /index.php?key1=$variable1&key2=$variable2 last;
I confess I’m not sure exactly what it is you are trying to do.
For certain urls, grab parts of the url and send them as-is within
QUERY_STRING to a php-processor? (In which case: doing the grabbing in
the location definition is probably easiest.)
Or grab parts of the url, and set other values in QUERY_STRING based
on the url parts? (In which case, matching on $uri at server level and
using the map-ped value within the location block is probably easiest.)
Or maybe something else?
map $uri $variable1 {
default 11;
/sub 7;
}
map $uri $variable2 {
default 78;
/pep 23;
}
The map documentation is at Module ngx_http_map_module
and there’s an example of if/set/map in the thread at
Using map and proxy_pass
And there are examples of php-without-rewrite around as well – in the
location block, set “fastcgi_param SCRIPT_FILENAME” explicitly, as well
as fastcgi_pass.
Good luck,
f
Francis D. [email protected]
token
November 8, 2011, 6:21am
4
Hi, António that is exactly wath is was trying to accomplish id didn’t
know i had to use the “~” at the beginning of the map key.
Thank you
Do you mean that the request URI can contain both /pep and /sub?Like
this:
http://example.com/sub/pep/other-stuff-if-any
If so then your matching must be done with a regex:
map $uri $variable1 {
default 11;
~/sub 7;
}
map $uri $variable2 {
default 78;
~/pep 23;
}
Posted at Nginx Forum: