In my Nginx config I have redirect rules like this:
map $uri $target {
'/test123' 'https://www.somedomain.com/test456';
}
map $uri $target_code {
'/test123' 301;
}
server {
listen 80 default;
if ($target_code = 301) {
return 301 $target;
}
if ($target_code = 302) {
return 302 $target;
}
}
and it works well. But regarding of If is evil
I want make statement like this:
server {
listen 80 default;
return $target_code $target;
}
But during the restart, Nginx returns error nginx: [emerg] invalid return code "$target_code" in /etc/nginx/nginx.conf
Is any possibility to use variable in that way? Or maybe is other way to make it without any if statements?