Leitarvélabestun (Seo)

Meginreglu

i18n.site tekur upp einnar síðuarkitektúr sem ekki er endurnýjaður Til þess að auðvelda leitarflokkun verður sérstök kyrrstæð síða og sitemap.xml til að skríða.

Þegar User-Agent á aðgangsbeiðninni er notað af leitarvélarskriðnum verður beiðninni vísað á kyrrstæðu síðu með 302 .

Á kyrrstæðum síðum, notaðu link til að gefa til kynna tengla á mismunandi tungumálaútgáfur þessarar síðu, eins og :

<link rel=alternate hreflang=zh href="https://i18n.site/zh/.htm">
<link rel=alternate hreflang=en href="https://i18n.site/en/.htm">

Staðbundin nginx Stilling

Taktu .i18n/htm/main.yml stillingarskrána í kynningarverkefninu sem dæmi

host: i18n-demo.github.io
seo: true
out:
  - fs

pkg:
  i: i18n.site
  md: i18n.site

cdn:
  v:
  jsd:

Vinsamlegast breyttu fyrst gildinu host: hér að ofan við lénið þitt, eins og xxx.com .

Þá, i18n.site -n , verður kyrrstæða síða búin til í out/main/htm möppunni.

Auðvitað geturðu líka virkjað aðrar stillingarskrár, svo sem að vísa fyrst til stillingar main til að búa til .i18n/htm/dist.package.json og .i18n/htm/dist.yml .

Keyrðu síðan i18n.site -n -c dist þannig að kyrrstæða síðan verður til í out/dist/htm .

nginx er hægt að stilla með því að vísa til stillingar hér að neðan.

map $http_user_agent $botLang {
  "~*baidu|yisou|sogou|360|byte" "/zh";
  "~*facebookexternalhit|slurp|bot|spider|curl" "/en";
  default "";
}

server {
  http2 on;
  listen 443 quic ;
  listen 443 ssl ;
  listen [::]:443 quic ;
  listen [::]:443 ssl ;

  add_header Alt-Svc 'h3=":443";ma=99999;persist=1';

  server_name doc.flashduty.com;

  ssl_certificate /root/.acme.sh/doc.flashduty.com_ecc/fullchain.cer;
  ssl_certificate_key /root/.acme.sh/doc.flashduty.com_ecc/doc.flashduty.com.key;

  root /mnt/doc.flashduty.com;

# Ekki geyma forskriftir starfsmanna í skyndiminni of lengi
  location = /S.js {
    add_header Cache-Control "max-age=600";
  }

# Stilltu lengri skyndiminnistíma fyrir aðrar kyrrstæður auðlindir
  location ~* \.(js|css|htm|html|md|avif|json|ico|xml|rss|gz|mp4|png|svg|txt|webmanifest)$ {
    add_header Cache-Control "max-age=999999";
  }

# Stilltu hvaða kyrrstöðu skrá skriðan notar sem færslu á heimasíðunni
  location = / {
    # Ef $botLang er ekki tómt þýðir það skriðaðgang og tilvísun í samræmi við uppsetta tungumálaslóð
    if ($botLang) {
        return 301 $botLang/flashduty.htm;
    }
    add_header Cache-Control "max-age=600";
    rewrite ^ /index.html break;
  }

# Stilling forrits á einni síðu
  location / {
    if ($botLang) {
      return 302 $botLang$request_uri.htm;
    }
    add_header Cache-Control "max-age=600";
    rewrite ^ /index.html break;
  }
}

server {
  server_name doc.flashduty.com;
  listen      80;
  listen      [::]:80 ;
  location    / {
    rewrite ^(.+) https://$host$1 permanent;
  }
  location /.well-known/acme-challenge/ {
    root /mnt/doc.flashduty.com/;
  }
}

Stilltu Hlutgeymslu Til Að Hlaða Upp Kyrrstæðum Skrám

Hægt er að búa til kyrrstæðar skrár á staðnum, en algengari aðferð er að hlaða þeim upp á hlutgeymslu.

Breyttu out sem er stillt hér að ofan í :

out:
  - s3

Síðan skaltu breyta ~/.config/i18n.site.yml og bæta við eftirfarandi stillingum :

site:
  i18n.site:
    s3:
      - endpoint: s3.eu-central-003.backblazeb2.com
        ak: # access key
        sk: # secret key
        bucket: # bucket name
        # region:

Í uppsetningunni, vinsamlegast breyttu i18n.site í gildið host: í .i18n/htm/main.yml , margar hlutageymslur geta verið stilltar undir s3 , og region reiturinn er valfrjáls (margar hlutageymslur þurfa ekki að stilla þennan reit).

Keyrðu síðan i18n.site -n til að endurbirta verkefnið.

Ef þú hefur breytt ~/.config/i18n.site.yml og vilt hlaða upp aftur, vinsamlegast notaðu eftirfarandi skipun í rótarskrá verkefnisins til að hreinsa upphlaða skyndiminni :

rm -rf .i18n/data/seo .i18n/data/public

cloudflare Stillingar

Lén hýst á cloudflare

Umbreytingarreglur

Bættu við viðskiptareglunum eins og sýnt er hér að neðan:

Reglukóðinn er sem hér segir, vinsamlegast breyttu kóðanum "i18n.site" í lénið þitt:

(http.host in {"i18n.site"}) and not (
substring(http.request.uri.path,-3) in {".js" ".gz"} or
substring(http.request.uri.path,-4) in {".htm" ".rss" ".css" ".svg" ".ico" ".png" ".xml" ".txt"} or
substring(http.request.uri.path,-5) in {".html" ".avif" ".json"} or
ends_with(http.request.uri.path,".webmanifest")
)

Skyndiminnisreglur

Bættu skyndiminnisreglum við eins og hér segir:

(substring(http.request.uri.path,-4) in {".htm" ".rss"}) or ends_with(http.request.uri.path,"/sitemap.xml") or ends_with(http.request.uri.path,".xml.gz")

Tilvísunarreglur

Stilltu tilvísunarreglurnar sem hér segir, vinsamlegast breyttu kóðanum "i18n.site" í lénið þitt

(http.host in {"i18n.site"}) and not (
substring(http.request.uri.path,-3) in {".js" ".gz"} or
substring(http.request.uri.path,-4) in {".htm" ".rss" ".css" ".svg" ".ico" ".png" ".xml" ".txt"} or
substring(http.request.uri.path,-5) in {".html" ".avif" ".json"} or
ends_with(http.request.uri.path,".webmanifest")
) and (
http.user_agent wildcard "*bot*" or
http.user_agent wildcard "*spider*" or
http.user_agent wildcard "*facebookexternalhit*" or
http.user_agent wildcard "*slurp*" or
http.user_agent wildcard "curl*" or
http.user_agent wildcard "*InspectionTool*"
)

URL redirect Veldu kraftmikla tilvísun, vinsamlegast breyttu /en í tilvísunarleið concat("/en",http.request.uri.path,".htm") í sjálfgefið tungumál sem þú vilt að leitarvélar innihaldi.

Baidu Intelligent Cloud Configuration

Ef þú þarft að veita þjónustu til meginlands Kína geturðu notað Baidu Smart Cloud .

Gögnum er hlaðið upp í Baidu Object Storage og bundið við Baidu Content Distribution Network.

Búðu síðan til handritið í EdgeJS sem hér segir

const uri = r.uri, p = uri.lastIndexOf(".");
if (
  p < 0 ||
  !"|js|css|htm|html|md|avif|json|ico|xml|rss|gz|mp4|png|svg|txt|webmanifest|".includes(
    "|" + uri.slice(p + 1) + "|",
  )
) {
  const ua = r.headersIn["User-Agent"].toLowerCase()
  if (/facebookexternalhit|slurp|bot|spider|curl/.test(ua)) {
    r.return(
      302,
      (/baidu|yisou|sogou|360|byte/.test(ua) ? "/zh" : "/en") + r.uri + ".htm",
    )
  } else {
    r.uri = "/index.html"
  }
}

r.respHeader(() => {
  const t = [], out = r.headersOut;
  ["Content-MD5", "Age", "Expires", "Last-Modified"].forEach(
    i => delete out[i]
  )
  r.rawHeadersOut.forEach(i => {
    const key = i[0].toLowerCase()
    if (key.startsWith("x-") || key.startsWith("ohc-")) {
      delete out[key]
    }
  })
  out["Cache-Control"] = "max-age=" + 9e5
  // Hægt er að stilla svarhausa til að kemba úttak, svo sem out.XXX = 'MSG';
})

Smelltu á Debug og smelltu síðan á Birta á allt netið.

Ítarleg Notkun: Dreifðu Umferð Út Frá Svæðisbundinni Upplausn

Ef þú vilt veita þjónustu á meginlandi Kína og vilt líka cloudflare ókeypis alþjóðlega umferð geturðu notað DNS með svæðisbundinni upplausn.

Til dæmis, Huawei DNS býður upp á ókeypis svæðisgreiningu, þar sem kínversk umferð getur farið í gegnum Baidu Smart Cloud og alþjóðleg umferð getur farið í gegnum cloudflare .

Það eru margar gildrur í uppsetningunni cloudflare Hér eru nokkur atriði til að hafa í huga :

Lénið Er Hýst Í Öðrum DNS , Hvernig Á Að Nota cloudflare

Bindið fyrst handahófskennt lén við cloudflare , og notaðu síðan SSL/TLS → sérsniðið lén til að tengja aðallénið við þetta lén.

Ekki Er Hægt Að Nálgast cloudflare R2 Í Gegnum Sérsniðið Lén

Vegna þess að ekki er hægt að nálgast cloudflare hlutageymsluna R2 með sérsniðnu lénsheiti, þarf að nota hlutageymslu þriðja aðila til að setja fastar skrár.

backblaze.com tökum við sem dæmi til að sýna hvernig á að binda hluti frá þriðja aðila til að geyma á cloudflare .

Búðu til fötu á backblaze.com , hladdu upp hvaða skrá sem er, smelltu til að fletta í skránni og fáðu lénið Friendly URL , sem er f003.backblazeb2.com hér.

Breyttu léninu úr CNAME í f003.backblazeb2.com við cloudflare og virkjaðu umboðið.

Breyta cloudflare af SSL → dulkóðunarhamur, stilltur á Full

Bættu við viðskiptareglunni eins og sýnt er hér að neðan, settu hana fyrst (sú fyrsta hefur lægsta forgang):

Rewrite to veldu dynamic og breyttu your_bucketname í concat("/file/your_bucketname",http.request.uri.path) í fötu nafnið þitt.

Að auki, í cloudflare umreikningsreglunni hér að ofan, er index.html breytt í file/your_bucketname/index.html og aðrar stillingar eru óbreyttar.