NginxでCookieを確認するための限られたリソースを見てきましたが、私が探していた答えを本当に見つけることができませんでした。うまくいけば、Nginxマスターの何人かが私に手を貸してくれるでしょう。
基本的に、ユーザーがCookieを持たない限り、別のドメインにリダイレクトしたいvhostがあります。これが私が作成したものです。
server {
listen 80;
server_name example.com;
if ($http_cookie ~* "dev_cookie" ) {
root /home/deploy/apps/example/current/public;
passenger_enabled on;
rack_env production;
break;
}
rewrite ^/(.*) http://beta.example.com/$1 permanent;
}
しかし、それはうまくいかないようです、私はエラーを受け取ります:
[emerg]: "root" directive is not allowed here in /opt/nginx/conf/nginx.conf:45
ここでの進め方がわかりません、アイデアはありますか?
それは理にかなっている。私はその異なるルートフォルダーを使用して別の仮想ホスト(beta.example.com)を定義し、Cookieが検出されたら、書き換えを行います
ドメインに条件付きで異なるルートを設定することはできませんが、条件付きで別のドメインにリダイレクト(書き換え)することはできます
この男の例は少し前に私を助けました http://nicknotfound.com/2009/01/12/iphone-website-with-nginx/