Puncte:1

NGINX - Trimiteți cererea către backend dacă solicitarea vine de la un crawler/bot

drapel us

Am o aplicație cu o singură pagină fără randare pe server. Deci, ori de câte ori cineva partajează o adresă URL de pe site pe Facebook sau Twitter, aceasta nu arată titlul dinamic al paginii.

Aș dori să trimit solicitări de crawler/bot către un backend special care deservește o pagină cu metaetichete OpenGraph.

Front-end-ul este găzduit pe NGINX și am această configurație până acum:

Server {
    asculta 80;
    asculta [::]:80;

    Locație / {
    
        dacă ($http_user_agent ~* "linkedinbot|googlebot|yahoo|bingbot|baiduspider|yandex|yeti|yodaobot|gigabot|ia_archiver|facebookexternalhit|twitterbot|developers\.google\.com") {
            returnează 307 https://renderer_service_domain$request_uri;
    }

    root /usr/share/nginx/html;
    index index.html;
}

Acest lucru funcționează, dar URL-ul lui Angular are # înainte de adresa URL a rutei, trebuie să o elimin înainte de a trimite cererea către backend-ul special.

Deci, cum pot elimina hash-ul din $request_uri?

Am încercat câteva exemple de rescrie, dar trimite cererea către același domeniu, trebuie să trimit cererea către alt server/nume de domeniu.

anx avatar
drapel fr
anx
Motoarele de căutare descurajează în mod explicit instituirea unui tratament special pentru a-și păcăli roboții - a face acest lucru înseamnă, în esență, să minți despre cum arată/funcționează pagina ta, chiar dacă se preface doar că este mai accesibilă.
Michael Hampton avatar
drapel cz
De asemenea, descurajează în mod explicit abuzarea marcajului hash ca indicator de rutare, deoarece devine prea dificil sau imposibil pentru ei să indexeze conținutul dvs. și, de asemenea, prea dificil sau imposibil pentru dvs. să rezolvați această problemă. A fost în vogă pentru scurt timp în urmă cu aproximativ o jumătate de deceniu, dar a căzut din favoare foarte repede. Ar trebui mai degrabă să vă remediați aplicația.
Puncte:2
drapel us

Hașișul # și conținutul după acesta nu sunt trimise la serverul HTTP, deci nu fac parte din $request_uri variabil.

Cu configurația dvs. exemplu, care este cererea exactă pe care o primește backend-ul dvs.?

Nu am experiență cu aplicațiile cu o singură pagină și cu Google, dar nu cred că este o abordare bună să trimiți conținut diferit către roboții crawler decât către utilizatorii finali.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.