1

There are Android and iOS applications, I have dynamical URI and I need to redirect Android and iOS users directly to mobile application via nginx, only if they use this link. But I don't understand how to handle it without "logical and" or "inner if".

As I understand I have to solve two conditions:

if ($http_user_agent ~* '(iphone|ipod|nokia|аndroid)' ) {
  rewrite ^ mobile_application://$host$request_id last;
}

and:

set $my_uri sign-up?invitation=$key #this key is dynamical
if ($request_id = '($my_uri)' ) {
      rewrite ^ mobile_application://$host$request_id last;
    }

So, I have no idea how to fix it.

Maksim Skutin
  • 136
  • 1
  • 10

1 Answers1

3
set $targeted_mobile no;
  if ($http_user_agent ~* "android|iphone|ipod") {
    set $targeted_mobile yes;
  }

  location /deep-link/ {
    if ($targeted_mobile = yes) {
      rewrite ^/deep-link/(.*) mobile://www.aaa.com/$1 permanent;
    }
    rewrite ^/deep-link/(.*) https://$server_name/$1 permanent;
Maksim Skutin
  • 136
  • 1
  • 10