Eu tenho um aplicativo de página única sem renderização no servidor. Assim, sempre que alguém compartilha uma URL do site no Facebook ou Twitter, o título dinâmico da página não é exibido.
Gostaria de enviar solicitações de rastreador/bot para um back-end especial que exibe uma página com meta tags OpenGraph.
O front-end está hospedado no NGINX e tenho esta configuração até agora:
server {
listen 80;
listen [::]:80;
location / {
if ($http_user_agent ~* "linkedinbot|googlebot|yahoo|bingbot|baiduspider|yandex|yeti|yodaobot|gigabot|ia_archiver|facebookexternalhit|twitterbot|developers\.google\.com") {
return 307 https://renderer_service_domain$request_uri;
}
root /usr/share/nginx/html;
index index.html;
}
Isso funciona, mas a URL do Angular tem o # antes da URL da rota, preciso removê-la antes de enviar a solicitação para o backend especial.
Então, como posso remover o hash do $request_uri ?
Tentei alguns exemplos de reescrita, mas ele envia a solicitação para o mesmo domínio, preciso enviar a solicitação para outro servidor/nome de domínio.
Responder1
O hash #
e o conteúdo posterior não são enviados ao servidor HTTP, portanto, não fazem parte da $request_uri
variável.
Com sua configuração de exemplo, qual é a solicitação exata que seu back-end recebe?
Não tenho experiência com aplicativos de página única e com o Google, mas não acho que seja uma boa abordagem enviar conteúdo diferente para bots rastreadores e para usuários finais.