Wordpress + Nginx - GeoIP Redirect возвращает 404 - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть следующая конфигурация в моем файле conf Nginx, на моем веб-сервере, обслуживающем WordPress.

Есть несколько вещей, которых я хочу достичь по заказу.

1) Если пользователь из выбранных стран, например, Филиппины, Малайзия, я хочу перенаправить его в форму запроса вместо информации о моем продукте.

2) Если это робот на гусеничном ходу, такой как Google, не перенаправляйте сервер, отправьте ему исходный URL

3) Если это гусеничный бот, а не, например, Филиппины, Малайзия, предоставьте им исходный URL.

Блок внешнего сервера

IP Mapping

map $geoip_country_code $allowed_country {
    default yes;
        MY no;
        PH no;
}

Бот / ползунки

map $http_user_agent $limit_bots {
     default 0;
     ~*(google|bing|yandex|msnbot) 1;
     ~*(AltaVista|Googlebot|Slurp|BlackWidow|Bot|ChinaClaw|Custo|DISCo|Download|Demon|eCatch|EirGrabber|EmailSiphon|EmailWolf|SuperHTTP|Surfbot|WebWhacker) 1;
}

Внутри блока сервера Я создаю блок размещения

 location /product {
        if ($limit_bots = 0) {
           set $test A;
        }

        if ($allowed_country = no) {
           set $test "${test}B";
        }

        if ($test = AB) {
           rewrite ^ /enquiry/ permanent;
        }

        try_files $uri $uri/ /index.php$args; 
        //With or without line above, correct users going to /product gets 404 error
}

Блок Wordpress Specific Location, поэтому постоянная ссылка работает.

location / {
                try_files $uri $uri/ /index.php$args;
  }

В настоящее время, если это, например, от MY и PH, он перенаправляет правильно.

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

Другие URL работают нормально.

...