Panag-Optimisar Ti Makina Ti Panagsapul (Seo) .
Prinsipio
i18n.site
ket mangadaptar ti saan a panag-refresh a maymaysa a panid nga arkitektura Tapno mapasayaat ti panag-indeks ti panagbiruk, ti naisina nga estatiko a panid ken sitemap.xml
ket mapataud para kadagiti agkarayam.
No User-Agent
ti kiddaw ti panagserrek ket inus-usar babaen ti crawler ti makina ti panagbiruk, ti kiddaw ket maiturongto manen iti estatiko a panid babaen ti 302
.
Kadagiti estatiko a panid, usaren link
tapno mangipakita kadagiti silpo kadagiti nadumaduma a bersion ti pagsasao iti daytoy a panid, a kas ti :
<link rel=alternate hreflang=zh href="https://i18n.site/zh/.htm">
<link rel=alternate hreflang=en href="https://i18n.site/en/.htm">
Lokal a Konfigurasion Ti nginx
Alaen ti .i18n/htm/main.yml
a file ti panagisaad iti proyekto ti demo a kas pagarigan
host: i18n-demo.github.io
seo: true
out:
- fs
pkg:
i: i18n.site
md: i18n.site
cdn:
v:
jsd:
Pangngaasi nga umuna a baliwan ti pateg ti host:
iti ngato iti nagan ti dominiom, a kas ti xxx.com
.
Kalpasanna, i18n.site -n
, ti estatiko a panid ket mapataudto iti out/main/htm
a direktorio.
Siempre, mabalinmo pay a pagayatan dagiti dadduma a file ti panagisaad, a kas ti umuna a panangitudo ti panagisaad ti main
tapno mangpartuat .i18n/htm/dist.package.json
ken .i18n/htm/dist.yml
.
Kalpasanna, tarayen i18n.site -n -c dist
tapno ti estatiko a panid ket mapataud iti out/dist/htm
.
nginx
ket mabalin a maikeddeng babaen ti panangitudo ti konfigurasion iti baba.
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;
# Dikay’ ag-cache kadagiti server worker script iti napaut unay
location = /S.js {
add_header Cache-Control "max-age=600";
}
# Mangikeddeng kadagiti at-atiddog nga oras ti cache para kadagiti dadduma nga estatiko a rekurso
location ~* \.(js|css|htm|html|md|avif|json|ico|xml|rss|gz|mp4|png|svg|txt|webmanifest)$ {
add_header Cache-Control "max-age=999999";
}
# Ikeddeng no ania nga estatiko a file ti us-usaren ti crawler a kas ti panagserrek ti homepage
location = / {
# No ti $botLang ket saan nga empty, kayatna a sawen ti panagserrek ti crawler ken panagiturong manen segun ti naikeddeng a dalan ti pagsasao
if ($botLang) {
return 301 $botLang/flashduty.htm;
}
add_header Cache-Control "max-age=600";
rewrite ^ /index.html break;
}
# Konfigurasion ti aplikasion ti maymaysa a panid
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/;
}
}
Ikonfigura Ti Pagipempenan Ti Banag Para Iti Panagikarga Kadagiti Estatiko a File
Dagiti estatiko a papeles ket mabalin a mapataud iti lokal, ngem ti ad-adu a gagangay a wagas ket ti panangikarga kadagitoy iti pagipempenan ti banag.
Baliwan out
a naikonfigura iti ngato iti :
out:
- s3
Kalpasanna, i-edit ~/.config/i18n.site.yml
ken inayon ti sumaganad a konfigurasion :
site:
i18n.site:
s3:
- endpoint: s3.eu-central-003.backblazeb2.com
ak: # access key
sk: # secret key
bucket: # bucket name
# region:
Iti panagisaad, pangngaasi a baliwan i18n.site
iti pateg ti host:
iti .i18n/htm/main.yml
, dagiti adu a pagidulinan ti banag ket mabalin a maikonfigura iti baba s3
, ken ti tay-ak ti region
ket opsional (adu a pagidulinan ti banag ket saan a kasapulan a mangikeddeng iti daytoy a tay-ak).
Kalpasanna, tarayen ti i18n.site -n
tapno maipablaak manen ti proyekto.
No binaliwam ~/.config/i18n.site.yml
ken kayatmo ti mangikarga manen, pangngaasi nga usarem ti sumaganad a bilin iti ramut a direktorio ti proyekto tapno maikkat ti cache ti panagikarga :
rm -rf .i18n/data/seo .i18n/data/public
Konfigurasion Ti cloudflare
Nagan ti domain a naisangayan iti cloudflare
Paglintegan Ti Panagbalbaliw
Inayon dagiti pagannurotan ti panagbalbaliw kas naipakita iti baba:
Ti kodigo ti pagannurotan ket kas ti sumaganad, pangngaasi a baliwam ti kodigo nga "i18n.site" iti nagan ti dominiom:
(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")
)
Dagiti Pagannurotan Ti Panag-Cache
Inayon dagiti pagannurotan ti cache kas iti sumaganad:
(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")
I-Redirect Dagiti Pagannurotan
Itakderan dagiti pagalagadan ti panagiturong manen a kas ti sumaganad, pangngaasi a baliwam ti kodigo nga "i18n.site" iti nagan ti dominiom
(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
Pilien ti dinamiko a panagiturong manen, pangngaasi a baliwan ti /en
iti dalan ti panagiturong manen concat("/en",http.request.uri.path,".htm")
iti default a pagsasao a kayatmo nga iraman dagiti makina ti panagbiruk.
Baidu Nasaririt a Konfigurasion Ti Ulep
No kasapulam ti mangipaay kadagiti serbisio iti mainland China, mabalinmo nga usaren ti Baidu Smart Cloud .
Ti datos ket naikarga iti Baidu Object Storage ken naisilpo iti Baidu Content Distribution Network.
Kalpasanna, mangpartuat ti iskrip iti EdgeJS edge service kas iti sumaganad
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
// Mabalinmo nga ikeddeng ti ulo ti sungbat tapno ag-debug ti rimmuar, a kas ti out.XXX = 'MSG';
})
I-click ti Debug
, sa i-click ti Publish iti intero a network.
Narang-Ay a Panagusar: Iwaras Ti Trapiko a Naibatay Iti Rehional a Resolusion
No kayatmo ti mangipaay kadagiti serbisio iti mainland China ken kayatmo met cloudflare
a libre nga internasional a trapiko, mabalinmo nga usaren DNS
nga addaan iti rehional a resolusion.
Kas pagarigan cloudflare
ti Huawei Cloud DNS
Adu dagiti silo iti konfigurasion ti cloudflare
Adtoy ti sumagmamano a punto a laglagipen :
Ti Nagan Ti Domain Ket Naisangayan Kadagiti Sabali a DNS
, No Kasano Nga Usaren cloudflare
Umuna nga igalut ti arbitrario a nagan ti dominio iti cloudflare
, ken kalpasanna usaren ti SSL/TLS
→ kostumbre a nagan ti dominio tapno mainaig ti kangrunaan a nagan ti dominio iti daytoy a nagan ti dominio.
cloudflare R2
Ket Saan a Mabalin a Mastrek Babaen Ti Kostumbre a Nagan Ti Dominio
Gapu ta ti cloudflare
a pagidulinan ti banag R2
ket saan a mabalin a mastrek babaen ti naipasayaat a nagan ti dominio, ti maikatlo a partido a pagidulinan ti banag ket kasapulan a mausar a mangikabil kadagiti estatiko a papeles.
Ditoy nga alaentayo cloudflare
backblaze.com
Mangaramid ti timba iti backblaze.com
, i-upload ti ania man a file, i-klik tapno ag-browse ti file, ken alaen ti domain name ti Friendly URL
, nga isu ti f003.backblazeb2.com
ditoy.
Baliwan ti nagan ti domain manipud iti CNAME
agingga f003.backblazeb2.com
iti cloudflare
ken pagayatan ti proxy.
Baliwan cloudflare
ti SSL
→ ti wagas ti panagenkripsio, naikabil iti Full
Inayon ti pagannurotan ti panagbalbaliw kas naipakita iti baba, iyun-una (ti umuna ket addaan iti kababaan a prioridad):
Rewrite to
pilien ti dinamiko ken baliwan ti your_bucketname
iti concat("/file/your_bucketname",http.request.uri.path)
iti nagan ti timbam.
Iti pay maipatinayon, iti pagannurotan ti panagbalbaliw cloudflare
iti ngato, index.html
ket nabaliwan iti file/your_bucketname/index.html
, ken dagiti dadduma a panagisaad ket agtalinaed a kas met laeng.