Search Engine Optimization (Seo)
Toro Lalan'ny
i18n.site
dia manangana maritrano pejy tokana tsy mamelombelona Mba hanamora ny fanondroana fikarohana, dia hisy pejy static misaraka sy sitemap.xml
hatsangana ho an'ny crawlers.
Rehefa ampiasain'ny crawler motera fikarohana User-Agent
amin'ny fangatahana fidirana, dia halefa any amin'ny pejy static amin'ny alàlan'ny 302
ny fangatahana.
Amin'ny pejy static, ampiasao link
hanondroana rohy mankany amin'ny dikan-teny samihafa amin'ity pejy ity, toy ny :
<link rel=alternate hreflang=zh href="https://i18n.site/zh/.htm">
<link rel=alternate hreflang=en href="https://i18n.site/en/.htm">
Fanofanana nginx Eo an-Toerana
Raiso ho ohatra ny rakitra fanamafisana .i18n/htm/main.yml
ao amin'ny tetikasa demo
host: i18n-demo.github.io
seo: true
out:
- fs
pkg:
i: i18n.site
md: i18n.site
cdn:
v:
jsd:
Ovao aloha ny sandan'ny host:
etsy ambony amin'ny anaran'ny sehatrao, toy ny xxx.com
.
Avy eo, i18n.site -n
, ny pejy static dia hatsangana ao amin'ny lahatahiry out/main/htm
.
Mazava ho azy fa azonao atao ihany koa ny mamela ny fisie fanamafisana hafa, toy ny fanondroana voalohany ny fanamafisana ny main
mba hamoronana .i18n/htm/dist.package.json
sy .i18n/htm/dist.yml
.
Avy eo dia mandehana i18n.site -n -c dist
mba hahatonga ny pejy static ho out/dist/htm
.
nginx
dia azo apetraka amin'ny alàlan'ny fanondroana ny fanamafisana etsy ambany.
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;
# Aza hadino ela loatra ny sora-tanan'ny mpiasa mpizara
location = /S.js {
add_header Cache-Control "max-age=600";
}
# Mametraha fotoana fitehirizana lava kokoa ho an'ny loharano static hafa
location ~* \.(js|css|htm|html|md|avif|json|ico|xml|rss|gz|mp4|png|svg|txt|webmanifest)$ {
add_header Cache-Control "max-age=999999";
}
# Ampidiro izay rakitra static ampiasain'ny crawler ho fidirana amin'ny pejy fandraisana
location = / {
# Raha toa ka tsy foana $botLang
if ($botLang) {
return 301 $botLang/flashduty.htm;
}
add_header Cache-Control "max-age=600";
rewrite ^ /index.html break;
}
# Fampiharana fampiharana pejy tokana
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/;
}
}
Ampifanaraho Ny Fitahirizana Zavatra Mba Hampidirana Rakitra Static
Ny rakitra static dia azo amboarina eo an-toerana, fa ny fomba mahazatra kokoa dia ny mampakatra azy ireo amin'ny fitahirizana zavatra.
out
ho :
out:
- s3
Avy eo, amboary ~/.config/i18n.site.yml
ary ampio ity fanitsiana manaraka ity :
site:
i18n.site:
s3:
- endpoint: s3.eu-central-003.backblazeb2.com
ak: # access key
sk: # secret key
bucket: # bucket name
# region:
Ao amin'ny fanamafisana, azafady ovay i18n.site
amin'ny sandan'ny host:
amin'ny .i18n/htm/main.yml
, ny fivarotana zavatra marobe dia azo amboarina eo ambanin'ny s3
, ary ny saha region
dia tsy voatery (tsy mila mametraka an'io sehatra io ny fivarotana zavatra maro).
Dia mandehana i18n.site -n
hamerenana ny tetikasa.
Raha nanova ~/.config/i18n.site.yml
ianao ary te-hampiakatra indray dia ampiasao ity baiko manaraka ity ao amin'ny lahatahiry fakan'ny tetikasa mba hanadio ny cache upload :
rm -rf .i18n/data/seo .i18n/data/public
Fametrahana cloudflare
Anaran'ny sehatra nampiantranoana ny cloudflare
Fitsipika Fiovam-Po
Ampio ny fitsipika fiovam-po araka ny aseho eto ambany:
Ny fehezan-dalàna dia toy izao manaraka izao, azafady ovao ny kaody "i18n.site" amin'ny anaran'ny sehatra misy anao:
(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")
)
Fitsipika Caching
Ampio fitsipika cache toy izao manaraka izao:
(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")
Redirect Fitsipika
Ataovy toy izao manaraka izao ny fitsipika redirection, azafady ovao ny kaody "i18n.site" amin'ny anaran'ny sehatra misy anao
(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
Safidio ny redirection dynamique, azafady ovao /en
amin'ny lalan'ny redirection concat("/en",http.request.uri.path,".htm")
mankany amin'ny fiteny mahazatra tianao hampidirana motera fikarohana.
Baidu Intelligent Cloud Configuration
Raha mila manome tolotra ho an'ny tanibe Shina ianao dia afaka mampiasa Baidu Smart Cloud .
Ny angona dia ampidirina ao amin'ny Baidu Object Storage ary mifamatotra amin'ny Baidu Content Distribution Network.
Avy eo mamorona ny script ao amin'ny serivisy EdgeJS toy izao manaraka izao
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
// Ny lohatenin'ny valin-kafatra dia azo apetraka ho debug ny vokatra, toy ny out.XXX = 'MSG';
})
Kitiho Debug
, ary tsindrio Avoaka amin'ny tambajotra manontolo.
Fampiasana Mandroso: Zarao Ny Fifamoivoizana Mifototra Amin'ny Fanapahan-Kevitra Isam-Paritra
Raha te-hanome tolotra any amin'ny tanibe Shina ianao ary mila fifamoivoizana iraisam-pirenena maimaim-poana cloudflare
dia azonao ampiasaina DNS
miaraka amin'ny fanapahan-kevitra isam-paritra.
Ohatra, Huawei Cloud DNS dia manome famakafakana isam-paritra maimaim-poana, izay ahafahan'ny fifamoivoizana Shinoa mandeha amin'ny Baidu Smart Cloud, ary ny fifamoivoizana iraisam-pirenena dia afaka mandalo cloudflare
.
Betsaka ny fandrika ao amin'ny fanamafisana ny cloudflare
Ireto misy teboka vitsivitsy tokony homarihina :
Ny Anaran-Tsehatra Dia Nampiantranoina Amin'ny DNS
Hafa, Ny Fomba Fampiasana cloudflare
Ampifandraiso amin'ny cloudflare
aloha ny anaran-tsehatra tsy manara-penitra, ary avy eo dia ampiasao ny anaran-tsehatra manokana SSL/TLS
→ mba hampifandray ny anaran-tsehatra lehibe amin'ity anaran-tsehatra ity.
cloudflare R2
Dia Tsy Azo Idirana Amin'ny Anaran'ny Sehatra Manokana
Satria tsy azo idirana amin'ny anaran'ny sehatra cloudflare
ny fitehirizana zavatra R2
naorina, dia mila ampiasaina ny fitehirizana zavatra avy amin'ny antoko fahatelo hametrahana rakitra static.
backblaze.com ho ohatra ny fomba famatorana ireo zavatra hafa hotehirizina ao amin'ny cloudflare
.
Mamorona siny amin'ny backblaze.com
, ampidiro ny rakitra rehetra, tsindrio raha hijery ilay rakitra, ary alao ny anaran'ny sehatra Friendly URL
, izay f003.backblazeb2.com
eto.
Hanova ny anaran'ny sehatra CNAME
ka hatramin'ny f003.backblazeb2.com
amin'ny cloudflare
ary avelao ny proxy.
Amboary cloudflare
amin'ny SSL
→ fomba fanafenana, atao Full
Ampio ny fitsipika fiovam-po araka ny aseho eto ambany, ataovy voalohany (ny voalohany dia manana laharam-pahamehana ambany indrindra):
Rewrite to
safidio ny dinamika ary ovao your_bucketname
amin'ny concat("/file/your_bucketname",http.request.uri.path)
amin'ny anaran'ny sinyo.
Ho fanampin'izany, ao amin'ny fitsipika fiovam-po cloudflare
etsy ambony, index.html
dia novaina ho file/your_bucketname/index.html
, ary ny fanamafisana hafa dia tsy miova.