سرچ انجڻ جي اصلاح (SEO)
اصول
i18n.site
هڪ غير ريفريش سنگل پيج آرڪيٽيڪچر کي اپنائڻ لاءِ سرچ انڊيڪسنگ کي آسان ڪرڻ لاءِ، هڪ الڳ جامد صفحو ۽ sitemap.xml
ٺاهيا ويندا ڪرالرز لاءِ.
جڏهن رسائي جي درخواست جو User-Agent
سرچ انجڻ ڪريلر استعمال ڪيو ويندو، درخواست کي 302
ذريعي جامد صفحي ڏانهن منتقل ڪيو ويندو.
جامد صفحن تي، link
استعمال ڪريو ھن صفحي جي مختلف ٻولين جي ورجن لاءِ لنڪس ڏيکارڻ لاءِ، جھڙوڪ :
<link rel=alternate hreflang=zh href="https://i18n.site/zh/.htm">
<link rel=alternate hreflang=en href="https://i18n.site/en/.htm">
مقامي 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
، جامد صفحو out/main/htm
ڊاريڪٽري ۾ ٺاھيو ويندو.
يقينن، توھان ٻين ڪنفيگريشن فائلن کي پڻ چالو ڪري سگھو ٿا، جھڙوڪ .i18n/htm/dist.package.json
۽ .i18n/htm/dist.yml
ٺاھڻ لاءِ پھرين main
جي ٺاھ جوڙ جو حوالو ڏيو.
پوءِ i18n.site -n -c dist
ھلايو ته جيئن جامد صفحو out/dist/htm
ڏانھن ٺاھيو ويندو.
nginx
هيٺ ڏنل ترتيب جي حوالي سان سيٽ ڪري سگھجي ٿو.
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";
}
# سيٽ ڪريو جامد فائل جيڪو ڪريلر استعمال ڪندو هوم پيج جي داخلا طور
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/;
}
}
جامد فائلن کي اپلوڊ ڪرڻ لاءِ اعتراض جي اسٽوريج کي ترتيب ڏيو
جامد فائلون مقامي طور تي ٺاهي سگھجن ٿيون، پر ھڪڙو وڌيڪ عام طريقو آھي انھن کي اپلوڊ ڪرڻ لاءِ اعتراض واري اسٽوريج تي.
مٿئين ترتيب ڏنل out
تبديل ڪريو :
out:
- s3
پوء، ~/.config/i18n.site.yml
تبديل ڪريو ۽ ھيٺ ڏنل ترتيب شامل ڪريو :
site:
i18n.site:
s3:
- endpoint: s3.eu-central-003.backblazeb2.com
ak: # access key
sk: # secret key
bucket: # bucket name
# region:
ترتيب ۾، مھرباني ڪري i18n.site
host:
جي قيمت ۾ .i18n/htm/main.yml
۾ تبديل ڪريو، گھڻن آبجیکٹ اسٽورن کي s3
ھيٺان ترتيب ڏئي سگھجي ٿو، ۽ region
فيلڊ اختياري آھي (ڪيترائي اعتراض اسٽورن کي ھن فيلڊ کي سيٽ ڪرڻ جي ضرورت نه آھي).
پوء هلايو i18n.site -n
منصوبي کي ٻيهر شايع ڪرڻ لاء.
جيڪڏھن توھان تبديل ڪيو آھي ~/.config/i18n.site.yml
۽ ٻيهر اپلوڊ ڪرڻ چاھيو ٿا، مھرباني ڪري ھيٺ ڏنل حڪم استعمال ڪريو پروجيڪٽ جي روٽ ڊاريڪٽري ۾ اپلوڊ ڪيش کي صاف ڪرڻ لاءِ :
rm -rf .i18n/data/seo .i18n/data/public
ڪلائوڊ فليئر ترتيب
ڊومين جو نالو 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")
)
ڪيشنگ ضابطا
ھيٺ ڏنل ڪيش ضابطا شامل ڪريو:
(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
منتخب ڪريو متحرڪ ريڊائريڪشن، مھرباني ڪري /en
ريڊائريڪشن واٽ concat("/en",http.request.uri.path,".htm")
۾ تبديل ڪريو ڊفالٽ ٻولي ڏانھن جنھن کي توھان چاھيو ٿا ته سرچ انجڻ شامل ڪن.
Baidu Intelligent Cloud Configuration
جيڪڏهن توهان کي سرزمين چين ۾ خدمتون مهيا ڪرڻ گهرجن، ته توهان Baidu Smart Cloud استعمال ڪري سگهو ٿا.
ڊيٽا Baidu Object Storage تي اپلوڊ ڪئي وئي آهي ۽ Baidu Content Distribution Network تي پابند آهي.
پوء اسڪرپٽ ٺاهيو EdgeJS سروس هيٺ ڏنل
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
، پوء ڪلڪ ڪريو شايع ڪريو پوري نيٽ ورڪ تي.
ترقي يافته استعمال: علائقائي قرارداد جي بنياد تي ٽرئفڪ کي ورهايو
جيڪڏهن توهان سرزمين چين ۾ خدمتون مهيا ڪرڻ چاهيو ٿا ۽ cloudflare
مفت بين الاقوامي ٽرئفڪ پڻ چاهيو ٿا، توهان استعمال ڪري سگهو ٿا DNS
علائقائي قرارداد سان.
مثال طور، DNS Cloud مفت علائقائي تجزيو مهيا ڪري ٿو، جنهن سان مکيه زميني چيني ٽرئفڪ Baidu Smart Cloud ذريعي ٿي سگهي ٿي، ۽ بين الاقوامي ٽرئفڪ cloudflare
ذريعي ٿي سگهي ٿي.
cloudflare
جي ٺاھ جوڙ ۾ ڪيترائي نقص آھن. ھتي نوٽ ڪرڻ لاءِ ڪجھ نقطا آھن :
ڊومين جو نالو ٻين ۾ ميزباني ڪيل آهي DNS
، ڪيئن استعمال ڪجي cloudflare
پهرين هڪ خودمختيار ڊومين جو نالو cloudflare
سان ڳنڍيو، ۽ پوء استعمال ڪريو SSL/TLS
→ ڪسٽم ڊومين جو نالو مکيه ڊومين جو نالو هن ڊومين جي نالي سان ڳنڍڻ لاء.
cloudflare R2
ڪسٽم ڊومين جي نالي ذريعي رسائي نه ٿو ڪري سگھجي
ڇاڪاڻ ته بلٽ cloudflare
ان آبجیکٹ اسٽوريج R2
تائين رسائي نه ٿي سگھي ڪسٽمائيز ڊومين جي نالي سان، هڪ ٽئين پارٽي اعتراض اسٽوريج کي استعمال ڪرڻ جي ضرورت آهي جامد فائلن کي رکڻ لاءِ.
backblaze.com اسان هڪ مثال طور وٺون ٿا ته ٽئين پارٽي جي شين کي ڪيئن پابند ڪجي ۽ انهن کي cloudflare
۾ محفوظ ڪجي.
backblaze.com
تي هڪ بالٽ ٺاهيو، ڪا به فائل اپلوڊ ڪريو، فائل کي براؤز ڪرڻ لاءِ ڪلڪ ڪريو، ۽ Friendly URL
جو ڊومين نالو حاصل ڪريو، جيڪو هتي f003.backblazeb2.com
آهي.
ڊومين جو نالو تبديل ڪريو CNAME
کان f003.backblazeb2.com
تائين cloudflare
۽ پراکسي کي فعال ڪريو.
تبديل ڪريو cloudflare
مان SSL
→ انڪرپشن موڊ، سيٽ ڪريو Full
تبادلي جو قاعدو شامل ڪريو جيئن ھيٺ ڏيکاريل آھي، ان کي پھريون رکو (پهريون ھڪڙي کي گھٽ ترجيح آھي):
Rewrite to
منتخب ڪريو متحرڪ ۽ تبديل ڪريو your_bucketname
۾ concat("/file/your_bucketname",http.request.uri.path)
پنھنجي بالٽ جي نالي ۾.
ان کان علاوه، مٿي ڏنل cloudflare
تبادلي واري قاعدي ۾، index.html
کي file/your_bucketname/index.html
۾ تبديل ڪيو ويو آهي، ۽ ٻيون ترتيبون ساڳيون رهنديون آهن.