Search Engine Optimization (SEO)
နိယာမ
i18n.site
ရှာဖွေမှုအညွှန်းပြုလုပ်ခြင်းကို လွယ်ကူချောမွေ့စေရန်အတွက် စာမျက်နှာတစ်ခုတည်းကို ပြန်လည်စတင်ခြင်းမဟုတ်သော တည်ဆောက်မှုပုံစံကို လက်ခံရယူရန်အတွက် သီးခြားအငြိမ်စာမျက်နှာနှင့် sitemap.xml
ကူးယူလေ့လာရန်အတွက် ထုတ်ပေးမည်ဖြစ်သည်။
ဝင်ရောက်ခွင့်တောင်းဆိုချက်၏ User-Agent
ကို ရှာဖွေရေးအင်ဂျင်စာရေးကိရိယာမှ အသုံးပြုသောအခါ၊ တောင်းဆိုချက်အား 302
မှတစ်ဆင့် static page သို့ ပြန်ညွှန်းမည်ဖြစ်သည်။
တည်ငြိမ်သောစာမျက်နှာများတွင်၊ ဤစာမျက်နှာကဲ့သို့သော မတူညီသောဘာသာစကားဗားရှင်းများသို့ လင့်ခ်များကိုညွှန်ပြရန် link
အသုံးပြုပါ :
<link rel=alternate hreflang=zh href="https://i18n.site/zh/.htm">
<link rel=alternate hreflang=en href="https://i18n.site/en/.htm">
Local nginx ဖွဲ့စည်းမှု
နမူနာအဖြစ် ဒီမိုပရောဂျက်ရှိ .i18n/htm/main.yml
ဖွဲ့စည်းမှုပုံစံဖိုင်ကို ယူပါ။
host: i18n-demo.github.io
seo: true
out:
- fs
pkg:
i: i18n.site
md: i18n.site
cdn:
v:
jsd:
ကျေးဇူးပြု၍ ဦးစွာ အထက်ပါ host:
တန်ဖိုးကို သင့်ဒိုမိန်းအမည်ဖြစ်သည့် xxx.com
ကဲ့သို့ ပြောင်းလဲပါ။
ထို့နောက် i18n.site -n
static page ကို out/main/htm
directory တွင်ထုတ်ပေးပါမည်။
.i18n/htm/dist.package.json
နှင့် .i18n/htm/dist.yml
ကိုဖန်တီးရန် main
၏ဖွဲ့စည်းပုံကို ဦးစွာရည်ညွှန်းခြင်းကဲ့သို့သော အခြားဖွဲ့စည်းပုံဖိုင်များကို သင်ဖွင့်နိုင်သည်။
ထို့နောက် static page ကို out/dist/htm
သို့ထုတ်ပေးရန် i18n.site -n -c dist
run ပါ။
nginx
အောက်ပါ configuration ကိုရည်ညွှန်းပြီး သတ်မှတ်နိုင်ပါသည်။
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;
# ဆာဗာလုပ်သားစခရစ်များကို အချိန်အကြာကြီး သိမ်းဆည်းမထားပါနှင့်
location = /S.js {
add_header Cache-Control "max-age=600";
}
# အခြားအငြိမ်အရင်းအမြစ်များအတွက် ပိုရှည်သော ကက်ရှ်အချိန်များကို သတ်မှတ်ပါ။
location ~* \.(js|css|htm|html|md|avif|json|ico|xml|rss|gz|mp4|png|svg|txt|webmanifest)$ {
add_header Cache-Control "max-age=999999";
}
# crawler မှအသုံးပြုသည့် static file ကို ပင်မစာမျက်နှာထည့်သွင်းမှုအဖြစ် သတ်မှတ်ပါ။
location = / {
# $botLang သည် ဗလာမဟုတ်ပါက၊ သတ်မှတ်ထားသော ဘာသာစကားလမ်းကြောင်းအတိုင်း စာရေးကိရိယာဝင်ရောက်ခြင်းနှင့် ပြန်ညွှန်းခြင်းကို ဆိုလိုသည်။
if ($botLang) {
return 301 $botLang/flashduty.htm;
}
add_header Cache-Control "max-age=600";
rewrite ^ /index.html break;
}
# စာမျက်နှာတစ်ခုတည်း အပလီကေးရှင်း ဖွဲ့စည်းမှုပုံစံ
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/;
}
}
ပုံသေဖိုင်များ အပ်လုဒ်တင်ခြင်းအတွက် အရာဝတ္ထုသိုလှောင်မှုကို စီစဉ်သတ်မှတ်ပါ။
Static ဖိုင်များကို စက်တွင်းတွင် ထုတ်ပေးနိုင်ပြီး၊ သို့သော် ပို၍အသုံးများသောနည်းလမ်းမှာ ၎င်းတို့ကို အရာဝတ္ထုသိုလှောင်မှုသို့ အပ်လုဒ်လုပ်ရန်ဖြစ်သည်။
အပေါ်က configure out
Modify လုပ်ပါ :
out:
- s3
ထို့နောက် ~/.config/i18n.site.yml
တည်းဖြတ်ပြီး အောက်ပါ configuration ကို ပေါင်းထည့်ပါ :
site:
i18n.site:
s3:
- endpoint: s3.eu-central-003.backblazeb2.com
ak: # access key
sk: # secret key
bucket: # bucket name
# region:
စီစဉ်ဖွဲ့စည်းမှုတွင်၊ ကျေးဇူးပြု၍ i18n.site
host:
in .i18n/htm/main.yml
၏တန်ဖိုးသို့ပြောင်းပါ၊ s3
အောက်ရှိ အရာဝတ္တုစတိုးဆိုင်များစွာကို ပြင်ဆင်သတ်မှတ်နိုင်ပြီး region
အကွက်သည် စိတ်ကြိုက်ရွေးချယ်နိုင်သည် (ဤအကွက်ကို အရာဝတ္ထုဆိုင်များစွာက သတ်မှတ်ရန်မလိုအပ်ပါ)။
ထို့နောက် ပရောဂျက်ကို ပြန်လည်ထုတ်ဝေရန် i18n.site -n
ကိုဖွင့်ပါ။
အကယ်၍ သင်သည် ~/.config/i18n.site.yml
ပြုပြင်ပြီး ပြန်လည် အပ်လုဒ်လုပ်လိုပါက၊ ကျေးဇူးပြု၍ အပ်လုဒ် cache ကို ရှင်းလင်းရန် ပရောဂျက် root directory တွင် အောက်ပါ command ကို အသုံးပြုပါ :
rm -rf .i18n/data/seo .i18n/data/public
cloudflare ဖွဲ့စည်းမှု
ဒိုမိန်းအမည် cloudflare
ကူးပြောင်းခြင်းဆိုင်ရာ စည်းမျဉ်းများ
အောက်တွင်ပြထားသည့်အတိုင်း ပြောင်းလဲခြင်းစည်းမျဉ်းများကို ထည့်ပါ-
စည်းမျဉ်းကုဒ်မှာ အောက်ပါအတိုင်းဖြစ်သည်၊ ကျေးဇူးပြု၍ "i18n.site" ကုဒ်ကို သင့်ဒိုမိန်းအမည်သို့ ပြင်ဆင်ပါ။
(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")
)
caching စည်းမျဉ်းများ
အောက်ပါအတိုင်း cache စည်းမျဉ်းများကို ထည့်ပါ
(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")
စည်းမျဉ်းများကို ပြန်ညွှန်းသည်။
ပြန်ညွှန်းခြင်းဆိုင်ရာ စည်းမျဉ်းများကို အောက်ပါအတိုင်း သတ်မှတ်ပါ၊ ကျေးဇူးပြု၍ "i18n.site" ကုဒ်ကို သင့်ဒိုမိန်းအမည်သို့ ပြင်ဆင်ပါ။
(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
သွက်လက်သောလမ်းကြောင်းပြန်ညွှန်မှုကို ရွေးချယ်ပါ၊ ကျေးဇူးပြု၍ လမ်းကြောင်း 1 ကို သင်ရှာဖွေရေးအင်ဂျင်များထည့်သွင်းလိုသည့် မူရင်းဘာသာစကားသို့ ပြန်ညွှန်းလမ်းကြောင်း concat("/en",http.request.uri.path,".htm")
တွင် /en
ပြင်ဆင်ပါ။
Baidu Intelligent Cloud ဖွဲ့စည်းမှု
တရုတ်ပြည်မကြီးသို့ ဝန်ဆောင်မှုများ ပေးဆောင်ရန် လိုအပ်ပါက Baidu Smart Cloud ကို အသုံးပြုနိုင်ပါသည်။
ဒေတာကို Baidu Object Storage သို့ အပ်လုဒ်လုပ်ပြီး Baidu Content Distribution Network သို့ ချိတ်ဆက်ထားသည်။
ထို့နောက် အောက်ပါအတိုင်း EdgeJS edge service တွင် script ကိုဖန်တီးပါ။
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
// တုံ့ပြန်မှု ခေါင်းစီးများကို out.XXX = 'MSG' ကဲ့သို့သော အမှားရှာအထွက်ထွက်အဖြစ် သတ်မှတ်နိုင်သည်။
})
Debug
နှိပ်ပါ၊ ထို့နောက် ကွန်ရက်တစ်ခုလုံးသို့ Publish ကိုနှိပ်ပါ။
အဆင့်မြင့်အသုံးပြုမှု- ဒေသဆိုင်ရာဖြေရှင်းချက်အပေါ်အခြေခံ၍ အသွားအလာဖြန့်ဝေပါ။
သင်သည် တရုတ်ပြည်မကြီးတွင် ဝန်ဆောင်မှုများ ပေးဆောင်လိုပြီး cloudflare
နိုင်ငံတကာ ၀င်ထွက်မှုကို လိုချင်ပါက၊ ဒေသဆိုင်ရာ ဆုံးဖြတ်ချက်ဖြင့် DNS
သင် အသုံးပြုနိုင်သည်။
ဥပမာအားဖြင့်၊ Huawei Cloud DNS တရုတ်ပြည်မကြီး၏အသွားအလာကို Baidu Smart Cloud မှတစ်ဆင့် ဖြတ်သန်းနိုင်ပြီး နိုင်ငံတကာအသွားအလာ cloudflare
ကိုဖြတ်သန်းနိုင်သည်။
cloudflare
၏ဖွဲ့စည်းပုံတွင် အမှားအယွင်းများစွာရှိသည်။ ဤသည်မှာ သတိပြုရန်အချက်အချို့ဖြစ်သည် :
ဒိုမိန်းအမည်ကို အခြား DNS
တွင် လက်ခံထားသည်၊ အသုံးပြုနည်း cloudflare
ပင်မဒိုမိန်းအမည်ကို ဤဒိုမိန်းအမည်နှင့် ချိတ်ဆက်ရန် ပထမဆုံး cloudflare
နှင့် SSL/TLS
→ စိတ်ကြိုက်ဒိုမိန်းအမည်ကို အသုံးပြုပါ။
စိတ်ကြိုက်ဒိုမိန်းအမည်ဖြင့် ၀င်ရောက်၍မရပါ cloudflare R2
built cloudflare
in object storage R2
ကို စိတ်ကြိုက် domain name ဖြင့် ဝင်ရောက်၍မရသောကြောင့်၊ static files များထားရှိရန် ပြင်ပအရာဝတ္ထုသိုလှောင်မှုကို အသုံးပြုရန်လိုအပ်ပါသည်။
ဤနေရာတွင် ကျွန်ုပ်တို့သည် ပြင်ပအရာဝတ္ထုများကို မည်သို့ချည်နှောင်ပြီး cloudflare
တွင် သိမ်းဆည်းနည်းကို သရုပ်ပြရန် ဥပမာတစ်ခုအနေနှင့် ယူပါသည် backblaze.com
backblaze.com
တွင် ပုံးတစ်ခုဖန်တီးပါ၊ မည်သည့်ဖိုင်ကိုမဆို အပ်လုဒ်လုပ်ပါ၊ ဖိုင်ကိုကြည့်ရှုရန် နှိပ်ပါ၊ ဤနေရာတွင် f003.backblazeb2.com
ဖြစ်သည့် Friendly URL
၏ဒိုမိန်းအမည်ကို ရယူပါ။
cloudflare
တွင် CNAME
မှ f003.backblazeb2.com
မှ domain name ကိုပြောင်းပြီး proxy ကိုဖွင့်ပါ။
SSL
→ ကုဒ်ဝှက်ခြင်းမုဒ်မှ cloudflare
မွမ်းမံပါ၊ Full
သို့သတ်မှတ်ပါ။
အောက်တွင်ပြထားသည့်အတိုင်း ပြောင်းလဲခြင်းစည်းမျဉ်းကို ထည့်ပါ၊ ၎င်းကို ဦးစွာထည့်ပါ (ပထမတစ်ခုသည် အနိမ့်ဆုံးဦးစားပေးဖြစ်သည်)
Rewrite to
dynamic ကိုရွေးချယ်ပြီး your_bucketname
in concat("/file/your_bucketname",http.request.uri.path)
ကို သင့်ပုံးအမည်သို့ ပြင်ဆင်ပါ။
ထို့အပြင်၊ အထက်ဖော်ပြပါ cloudflare
ပြောင်းလဲခြင်းစည်းမျဉ်းတွင် index.html
file/your_bucketname/index.html
သို့ပြောင်းပြီး အခြားဖွဲ့စည်းပုံများသည် အတူတူပင်ဖြစ်ပါသည်။