NginxでIf文を if ($host = 'www.example.com' && $request_uri ~ "/admin") という風には書けない。 入れ子にもできません。(ディレクティブなので?) そこで逃げ道は 文字列結合で判定。 if ($request_uri = /) { set $test A; } if ($host ~* teambox.com) { set $test "${test}B"; } if ($http_cookie !~* "auth_token") { set $test "${test}C"; } if ($test = ABC) { proxy_pass http://teambox-cms.heroku.com; break; }
![Nginxで複数条件のIF文を書く方法がすごいw - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/1ffc68d41c51a2f08c717846c56ca2e64e8d56a0/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9TmdpbnglRTMlODElQTclRTglQTQlODclRTYlOTUlQjAlRTYlOUQlQTElRTQlQkIlQjYlRTMlODElQUVJRiVFNiU5NiU4NyVFMyU4MiU5MiVFNiU5QiVCOCVFMyU4MSU4RiVFNiU5NiVCOSVFNiVCMyU5NSVFMyU4MSU4QyVFMyU4MSU5OSVFMyU4MSU5NCVFMyU4MSU4NCVFRiVCRCU5NyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9N2Y1OGFlODY3MGNmMjBiZTBlOThkNzkzNTMxNTMyZDk%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB1a2l0YXp1bWUmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWY3OTdkYzcxNzZiYWNjMGZmOWQ2OTUxNDdmZTVmZGU1%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D71432a30cab986eac4ee9396058be988)