Uboreshaji Wa Injini Ya Utafutaji (Seo)
Kanuni
i18n.site
inachukua usanifu usioonyesha upya ukurasa mmoja Ili kuwezesha uwekaji faharasa wa utafutaji, ukurasa tofauti tuli na sitemap.xml
utatolewa ili watambaji kutambaa.
Wakati User-Agent
ya ombi la ufikiaji linatumiwa na kitambazaji cha injini ya utafutaji, ombi litaelekezwa kwenye ukurasa tuli kupitia 302
.
Kwenye kurasa tuli, tumia link
kuonyesha viungo vya matoleo tofauti ya lugha ya ukurasa huu, kama vile :
<link rel=alternate hreflang=zh href="https://i18n.site/zh/.htm">
<link rel=alternate hreflang=en href="https://i18n.site/en/.htm">
Usanidi Wa nginx Wa Ndani
Chukua faili ya usanidi .i18n/htm/main.yml
katika mradi wa onyesho kama mfano
host: i18n-demo.github.io
seo: true
out:
- fs
pkg:
i: i18n.site
md: i18n.site
cdn:
v:
jsd:
Tafadhali kwanza rekebisha thamani ya host:
hapo juu kwa jina la kikoa chako, kama vile xxx.com
.
Kisha, i18n.site -n
, ukurasa tuli utatolewa katika saraka out/main/htm
.
Bila shaka, unaweza pia kuwezesha faili nyingine za usanidi, kama vile kurejelea kwanza usanidi wa main
kuunda .i18n/htm/dist.package.json
na .i18n/htm/dist.yml
.
Kisha endesha i18n.site -n -c dist
ili ukurasa tuli utatolewa kwa out/dist/htm
.
nginx
inaweza kuwekwa kwa kurejelea usanidi ulio hapa chini.
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;
# Usihifadhi hati za mfanyakazi wa seva kwa muda mrefu sana
location = /S.js {
add_header Cache-Control "max-age=600";
}
# Weka muda mrefu zaidi wa akiba kwa rasilimali zingine tuli
location ~* \.(js|css|htm|html|md|avif|json|ico|xml|rss|gz|mp4|png|svg|txt|webmanifest)$ {
add_header Cache-Control "max-age=999999";
}
# Weka faili tuli ambayo kitambazaji hutumia kama ingizo la ukurasa wa nyumbani
location = / {
# Ikiwa $botLang si tupu, inamaanisha ufikiaji wa kutambaa na kuelekeza upya kulingana na njia iliyowekwa ya lugha
if ($botLang) {
return 301 $botLang/flashduty.htm;
}
add_header Cache-Control "max-age=600";
rewrite ^ /index.html break;
}
# Usanidi wa programu ya ukurasa mmoja
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/;
}
}
Sanidi Hifadhi Ya Kitu Kwa Kupakia Faili Tuli
Faili tuli zinaweza kuzalishwa ndani ya nchi, lakini mbinu ya kawaida zaidi ni kuzipakia kwenye hifadhi ya kitu.
Rekebisha out
iliyosanidiwa hapo juu kuwa :
out:
- s3
Kisha, hariri ~/.config/i18n.site.yml
na ongeza usanidi ufuatao :
site:
i18n.site:
s3:
- endpoint: s3.eu-central-003.backblazeb2.com
ak: # access key
sk: # secret key
bucket: # bucket name
# region:
Katika usanidi, tafadhali badilisha i18n.site
hadi thamani ya host:
katika .i18n/htm/main.yml
, hifadhi nyingi za vitu zinaweza kusanidiwa chini ya s3
, na sehemu ya region
ni ya hiari (duka nyingi za vitu hazihitaji kuweka uga huu).
Kisha endesha i18n.site -n
ili kuchapisha tena mradi.
Ikiwa umerekebisha ~/.config/i18n.site.yml
na ungependa kupakia upya, tafadhali tumia amri ifuatayo katika saraka ya mizizi ya mradi ili kufuta akiba ya upakiaji :
rm -rf .i18n/data/seo .i18n/data/public
Usanidi Wa cloudflare
Jina la kikoa limepangishwa cloudflare
Kanuni Za Uongofu
Ongeza kanuni za uongofu kama inavyoonyeshwa hapa chini:
Kanuni ya kanuni ni kama ifuatavyo, tafadhali rekebisha msimbo "i18n.site" kwa jina la kikoa chako:
(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")
)
Sheria Za Caching
Ongeza sheria za kashe kama ifuatavyo:
(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")
Elekeza Upya Sheria
Weka sheria za uelekezaji kwingine kama ifuatavyo, tafadhali rekebisha msimbo "i18n.site" kwa jina la kikoa chako.
(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
Chagua uelekezaji upya unaobadilika, tafadhali rekebisha /en
katika njia ya concat("/en",http.request.uri.path,".htm")
ya kuelekeza kwingine hadi lugha chaguo-msingi unayotaka injini tafuti zijumuishe.
Usanidi Wa Wingu Wa Akili Wa Baidu
Ikiwa unahitaji kutoa huduma kwa China bara, unaweza kutumia Baidu Smart Cloud .
Data inapakiwa kwenye Hifadhi ya Kitu cha Baidu na kufungwa kwenye Mtandao wa Usambazaji wa Maudhui wa Baidu.
Kisha unda hati katika huduma ya EdgeJS kama ifuatavyo
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
// Vijajuu vya majibu vinaweza kuwekwa ili kutoa utatuzi, kama vile out.XXX = 'MSG';
})
Bofya Debug
, kisha ubofye Chapisha kwa mtandao mzima.
Matumizi Ya Hali Ya Juu: Sambaza Trafiki Kulingana Na Azimio La Kikanda
Iwapo ungependa kutoa huduma nchini China bara na pia unataka trafiki cloudflare
ya kimataifa isiyolipishwa, unaweza kutumia DNS
yenye azimio la kikanda.
Kwa mfano, Wingu DNS Huawei hutoa uchanganuzi wa kikanda bila malipo, ambao trafiki ya China bara inaweza kupitia Baidu Smart Cloud, na trafiki ya kimataifa inaweza kupitia cloudflare
.
Kuna mitego mingi katika usanidi wa cloudflare
Hapa kuna vidokezo vichache vya kuzingatia :
Jina La Kikoa Linapangishwa Katika Zingine DNS
, Jinsi Ya Kutumia cloudflare
Kwanza funga jina la kikoa kiholela kwa cloudflare
, na kisha utumie SSL/TLS
→ jina maalum la kikoa kuhusisha jina kuu la kikoa na jina hili la kikoa.
cloudflare R2
Haiwezi Kufikiwa Kupitia Jina Maalum La Kikoa
Kwa sababu hifadhi ya kitu cloudflare
R2
haiwezi kufikiwa kwa jina la kikoa lililogeuzwa kukufaa, hifadhi ya kitu cha mtu wa tatu inahitaji kutumiwa kuweka faili tuli.
Hapa backblaze.com kama mfano kuonyesha jinsi ya kufunga vitu vya mtu wa tatu kuhifadhiwa kwa cloudflare
.
Unda ndoo kwa backblaze.com
, pakia faili yoyote, bofya ili kuvinjari faili, na upate jina la kikoa la Friendly URL
, ambalo ni f003.backblazeb2.com
hapa.
Badilisha jina la kikoa kutoka CNAME
hadi f003.backblazeb2.com
saa cloudflare
na uwashe wakala.
Rekebisha cloudflare
kati ya SSL
modi ya usimbaji fiche, weka Full
Ongeza sheria ya ubadilishaji kama inavyoonyeshwa hapa chini, iweke kwanza (ya kwanza ina kipaumbele cha chini zaidi):
Rewrite to
chagua inayobadilika na urekebishe your_bucketname
kati ya concat("/file/your_bucketname",http.request.uri.path)
kwa jina la ndoo yako.
Kwa kuongeza, katika sheria ya uongofu cloudflare
hapo juu, index.html
inabadilishwa hadi file/your_bucketname/index.html
, na usanidi mwingine unabaki sawa.