Hi everyone.
I'm trying to get Nginx to run some Regex's on requests and send them to another server block, returning the response headers from the second server block. At the moment I get a 302 response status, how do I get the headers from the second server block?
So as an example, I would like a request like: http://nginxrouting.local/some/stuff/that/needs/to/be/removed/itemid=1234/more/stuff/topicid=1234
to be sent to http://nginxrouting_destination.local/itemid=1234topicid=1234 returning the headers from the new location
The server blocks look like this:
server {
server_name nginxrouting.local;
root /var/nginxrouting/public;
location / {
if ($request_uri ~* ".*(itemid=[0-9]*){1}.*") {
set $itemid $1;
}
if ($request_uri ~* ".*(topicid=[0-9]*){1}.*") {
set $topicid $1;
}
if ($request_uri ~* ".*(&type=RESOURCES){1}.*") {
set $resources $1;
}
rewrite ^ http://nginxrouting_destination.local/$itemid$topicid$resources? redirect;
add_header itemid $itemid;
}
}
server {
server_name nginxrouting_destination.local;
root var/govuk/nginxrouting/public_destination;
location / {
add_header working yes;
return 200;
}
}