Рейтинг:1

NGINX — отправить запрос на серверную часть, если запрос исходит от сканера/бота

флаг us

У меня есть одностраничное приложение без рендеринга на стороне сервера. Поэтому всякий раз, когда кто-то делится URL-адресом сайта в Facebook или Twitter, динамический заголовок страницы не отображается.

Я хотел бы отправлять запросы сканера/бота на специальный сервер, который обслуживает страницу с метатегами OpenGraph.

Внешний интерфейс размещен на NGINX, и пока у меня такая конфигурация:

сервер {
    слушать 80;
    слушать [::]:80;

    место расположения / {
    
        if ($http_user_agent ~* "linkedinbot|googlebot|yahoo|bingbot|baiduspider|yandex|yeti|yodaobot|gigabot|ia_archiver|facebookexternalhit|twitterbot|developers\.google\.com") {
            вернуть 307 https://renderer_service_domain$request_uri;
    }

    корень /usr/share/nginx/html;
    индекс index.html;
}

Это работает, но URL-адрес Angular имеет # перед URL-адресом маршрута, мне нужно удалить его перед отправкой запроса на специальный бэкэнд.

Итак, как я могу удалить хэш из $request_uri?

Я попробовал пару примеров перезаписи, но он отправляет запрос на тот же домен, мне нужно отправить запрос на другой сервер/доменное имя.

anx avatar
флаг fr
anx
Поисковые системы явно не рекомендуют настраивать специальные режимы для обмана своих ботов — это, по сути, лжет о том, как на самом деле выглядит/работает ваша страница, даже если она просто притворяется более доступной.
Michael Hampton avatar
флаг cz
Они также явно не одобряют злоупотребление хеш-меткой в ​​качестве индикатора маршрутизации, поскольку для них становится слишком сложно или невозможно индексировать ваш контент, а вам слишком сложно или невозможно решить эту проблему. Он был в моде ненадолго около полувека назад, но очень быстро потерял популярность. Вы должны скорее исправить ваше приложение.
Рейтинг:2
флаг us

Хэш # и содержимое после него не отправляются на HTTP-сервер, поэтому они не являются частью $request_uri переменная.

В вашем примере конфигурации, какой именно запрос получает ваш сервер?

У меня нет опыта работы с одностраничными приложениями и Google, но я не думаю, что это хороший подход — отправлять разные материалы роботам-сканерам и конечным пользователям.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.