Search Engine Optimization (Seo)

Prinċipju

i18n.site jadotta arkitettura ta' paġna waħda mhux ta' aġġornament Sabiex tiġi ffaċilitata l-indiċjar tat-tiftix, se jiġu ġġenerati paġna statika separata u sitemap.xml biex jitkaxkru.

Meta User-Agent tat-talba għall-aċċess tintuża mit-tkaxkir tal-magna tat-tiftix, it-talba tiġi ridiretta lejn il-paġna statika permezz ta 302 .

Fuq paġni statiċi, uża link biex tindika links għal verżjonijiet lingwistiċi differenti ta' din il-paġna, bħal :

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

Konfigurazzjoni Lokali nginx

Ħu l-fajl tal-konfigurazzjoni .i18n/htm/main.yml fil-proġett demo bħala eżempju

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

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

cdn:
  v:
  jsd:

Jekk jogħġbok l-ewwel immodifika l-valur ta' host: hawn fuq għall-isem tad-dominju tiegħek, bħal xxx.com .

Imbagħad, i18n.site -n , il-paġna statika tiġi ġġenerata fid-direttorju out/main/htm .

Naturalment, tista 'wkoll tippermetti fajls ta' konfigurazzjoni oħra, bħall-ewwel tirreferi għall-konfigurazzjoni ta ' main biex toħloq .i18n/htm/dist.package.json u .i18n/htm/dist.yml .

Imbagħad mexxi i18n.site -n -c dist sabiex il-paġna statika tiġi ġġenerata għal out/dist/htm .

nginx jista 'jiġi ssettjat billi tirreferi għall-konfigurazzjoni hawn taħt.

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;

# Tpoġġix fil-cache l-iskripts tal-ħaddiema tas-server għal żmien twil wisq
  location = /S.js {
    add_header Cache-Control "max-age=600";
  }

# Issettja ħinijiet ta' cache itwal għal riżorsi statiċi oħra
  location ~* \.(js|css|htm|html|md|avif|json|ico|xml|rss|gz|mp4|png|svg|txt|webmanifest)$ {
    add_header Cache-Control "max-age=999999";
  }

# Issettja liema fajl statiku juża t-tkaxkir bħala l-entrata tal-homepage
  location = / {
    # Jekk $botLang mhix vojta, dan ifisser aċċess għat-tkaxkir u direzzjoni mill-ġdid skont il-mogħdija tal-lingwa stabbilita
    if ($botLang) {
        return 301 $botLang/flashduty.htm;
    }
    add_header Cache-Control "max-age=600";
    rewrite ^ /index.html break;
  }

# Konfigurazzjoni ta 'applikazzjoni ta' paġna waħda
  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/;
  }
}

Ikkonfigura L-Ħażna Tal-Oġġetti Għat-Tlugħ Ta' Fajls Statiċi

Fajls statiċi jistgħu jiġu ġġenerati lokalment, iżda approċċ aktar komuni huwa li jittellgħu fil-ħażna tal-oġġetti.

Immodifika out konfigurat hawn fuq għal :

out:
  - s3

Imbagħad, editja ~/.config/i18n.site.yml u żid il-konfigurazzjoni li ġejja :

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

Fil-konfigurazzjoni, jekk jogħġbok ibdel i18n.site għall-valur ta ' host: .i18n/htm/main.yml , ħwienet ta' oġġetti multipli jistgħu jiġu kkonfigurati taħt s3 , u l-qasam region huwa fakultattiv (ħafna ħwienet ta 'oġġetti m'għandhomx għalfejn jissettjaw dan il-qasam).

Imbagħad mexxi i18n.site -n biex tippubblika mill-ġdid il-proġett.

Jekk immodifikajt ~/.config/i18n.site.yml u trid terġa 'upload, jekk jogħġbok uża l-kmand li ġej fid-direttorju tal-għeruq tal-proġett biex tneħħi l-cache tat-tlugħ :

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

Konfigurazzjoni cloudflare

Isem tad-dominju ospitat fuq cloudflare

Regoli Ta' Konverżjoni

Żid ir-regoli tal-konverżjoni kif muri hawn taħt:

Il-kodiċi tar-regola huwa kif ġej, jekk jogħġbok immodifika l-kodiċi "i18n.site" għall-isem tad-dominju tiegħek:

(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")
)

Regoli Tal-Caching

Żid ir-regoli tal-cache kif ġej:

(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")

Regoli Mill-Ġdid

Issettja r-regoli tar-ridirezzjoni kif ġej, jekk jogħġbok immodifika l-kodiċi "i18n.site" għall-isem tad-dominju tiegħek

(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 Agħżel direzzjoni mill-ġdid dinamika, jekk jogħġbok immodifika /en fit-triq tar-ridirezzjoni concat("/en",http.request.uri.path,".htm") għal-lingwa default li trid li l-magni tat-tiftix jinkludu.

Konfigurazzjoni Ta 'Cloud Intelliġenti Baidu

Jekk għandek bżonn tipprovdi servizzi liċ-Ċina kontinentali, tista 'tuża Baidu Smart Cloud .

Id-dejta tittella’ f’Baidu Object Storage u marbuta man-Netwerk ta’ Distribuzzjoni tal-Kontenut Baidu.

Imbagħad oħloq l-iskript fis EdgeJS servizz edge kif ġej

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
  // L-intestaturi tar-rispons jistgħu jiġu ssettjati biex jiddebugjaw l-output, bħal out.XXX = 'MSG';
})

Ikklikkja Debug , imbagħad ikklikkja Ippubblika għan-netwerk kollu.

Użu Avvanzat: Qassam It-Traffiku Abbażi Tar-Riżoluzzjoni Reġjonali

Jekk trid tipprovdi servizzi fiċ-Ċina kontinentali u trid ukoll cloudflare traffiku internazzjonali b'xejn, tista 'tuża DNS b'riżoluzzjoni reġjonali.

Pereżempju, Huawei DNS jipprovdi analiżi reġjonali b'xejn, li biha t-traffiku taċ-Ċina kontinentali jista 'jgħaddi minn Baidu Smart Cloud, u t-traffiku internazzjonali jista' jgħaddi minn cloudflare .

Hemm ħafna nases fil-konfigurazzjoni ta ' cloudflare Hawn huma ftit punti li wieħed jinnota :

L-Isem Tad-Dominju Huwa Ospitat DNS Oħra, Kif Tuża cloudflare

L-ewwel jorbot isem ta 'dominju arbitrarju ma' cloudflare , u mbagħad uża SSL/TLS → isem tad-dominju tad-dwana biex tassoċja l-isem tad-dominju prinċipali ma 'dan l-isem tad-dominju.

cloudflare R2 Ma Jistax Jiġi Aċċessat Permezz Ta 'isem Tad-Dominju Personalizzat

Minħabba li l-ħażna ta cloudflare l-oġġetti mibnija R2 ma tistax tiġi aċċessata minn isem ta' dominju personalizzat, jeħtieġ li tintuża ħażna ta 'oġġett ta' parti terza biex tpoġġi fajls statiċi.

backblaze.com nieħdu bħala eżempju biex nuru kif torbot oġġetti ta 'partijiet terzi biex jinħażnu cloudflare .

Oħloq barmil backblaze.com , ittella' kwalunkwe fajl, ikklikkja biex tfittex il-fajl, u tikseb l-isem tad-dominju ta ' Friendly URL , li huwa f003.backblazeb2.com hawn.

Ibdel l-isem tad-dominju minn CNAME għal f003.backblazeb2.com cloudflare u ppermetti l-prokura.

Immodifika cloudflare ta ' SSL → mod ta' encryption, issettjat għal Full

Żid ir-regola tal-konverżjoni kif muri hawn taħt, poġġiha l-ewwel (l-ewwel waħda għandha l-inqas prijorità):

Rewrite to agħżel dinamiku u mmodifika your_bucketname concat("/file/your_bucketname",http.request.uri.path) għall-isem tal-barmil tiegħek.

Barra minn hekk, fir-regola ta 'konverżjoni cloudflare hawn fuq, index.html jinbidel għal file/your_bucketname/index.html , u konfigurazzjonijiet oħra jibqgħu l-istess.