Назад | Перейти на главную страницу

Правило переопределения местоположения Nginx соответствует значению заголовка GeoIP

Я хочу написать простое правило перезаписи, в котором я в основном пытаюсь сказать следующее

Если запрошенный URI - text / index.html (или test /), а организация GeoIP равна «My GeoIP Value», тогда server test / index2.html

Я пробовал несколько директив, но на самом деле ничего не работает, как я ожидал.

Текущая установка у меня

map $geoip_org $redirectMe {
    default 0;
    'My GeoIP Org Value' 1;
}

server{
 ....

    location /test {
        try_files $uri index.html;

        expires -1;

        if ( $redirectMe ) {
            rewrite ^/test/index.html$ /test/test2.html break;
        }
    }

   .... 
}

Я обнаружил, что он либо ничего не перенаправляет, либо перенаправляет все время независимо от моей IP-организации, так как если бы он кэшировал перенаправление, которое, как я думал, истекает -1, разобралось бы.

Я также заметил, что получаю HTTP 304 для запросов независимо от того, перенаправлены они или нет.

У кого-нибудь есть указатели? Я думал, что это будет просто. Я также пытался не использовать карту и помещать сравнение внутри местоположения, но это не сработало, и использование карты вне сервера позволило бы мне позже изменить логику.

Обновить Ответ заключается в том, что он действительно работал, и это просто кеш, который не обновлялся, когда я запускал перезагрузку службы nginx.

Решением было использовать принудительную перезагрузку службы nginx (или перезапуск, хотя это перебор), и он работал бы

Ответ заключается в том, что он действительно работал, и это просто кеш, который не обновлялся, когда я запускал перезагрузку службы nginx.

Решением было использовать принудительную перезагрузку службы nginx (или перезапуск, хотя это перебор), и это сработало.