У меня два домена www.domain.com и www.domain.com.tw. Я хочу, чтобы пользователь был перенаправлен на ближайший сервер, но если они хотят просмотреть другой сервер, они могут, щелкнув ссылку на сайте.
Я пытался сделать это с помощью cookie, но похоже, что он не работает. Я думаю, проблема в том, что cookie установлен для ссылочного URL, а не для перенаправленного URL, поэтому nginx даже не видит cookie. Как я могу это сделать? Вот моя попытка.
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/;
}
}
Как вы сами сказали, поскольку файлы cookie зависят от домена, файлы, установленные для .com, не будут видны .com.tw. Итак, в своем перенаправлении вы можете добавить такой параметр, как ?noredir=true
. Затем, когда .com получает этот запрос, он не может перенаправить и установить cookie, чтобы он запомнил.