nginx reescreve a URL para redirecionar somente se um cookie não estiver definido

5

Eu tenho dois domínios, www.domain.com e www.domain.com.tw. Eu quero que o usuário seja redirecionado para o servidor mais próximo, mas se eles quiserem visualizar o outro servidor, eles podem clicar em um link no site.

Eu tentei fazer isso com um cookie, mas parece que não está funcionando. Eu acho que o problema é que o cookie é definido para o URL de referência e não o URL redirecionado, então o nginx nem vê o cookie. Como posso fazer isso? Aqui está minha tentativa até agora.

server {
    listen 80;
    server_name www.domain.com.tw;

    set $redir "";
    if ($http_accept_language ~* "en") {
        set $redir "1";
    }
    if ($http_cookie ~* "noredir") {
        set $redir "";
    }
    if ($redir = "1") {
        rewrite ^ https://www.domain.com/;
    }
}
    
por richard 14.10.2012 / 20:48

1 resposta

0

Como você mesmo disse, porque os cookies dependem do domínio, o que está definido no .com não será visto por .com.tw. Então, no seu redirecionamento, você pode adicionar um parâmetro como ?noredir=true . Então, quando o .com recebe essa solicitação, ele não pode redirecionar e definir o cookie para que ele se lembre.

    
por 14.10.2012 / 22:50

Tags