ಸರ್ಚ್ ಇಂಜಿನ್ ಆಪ್ಟಿಮೈಸೇಶನ್ (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
.i18n/htm/main.yml
ರಲ್ಲಿ host:
ರ ಮೌಲ್ಯಕ್ಕೆ ಬದಲಾಯಿಸಿ, ಬಹು ಆಬ್ಜೆಕ್ಟ್ ಸ್ಟೋರ್ಗಳನ್ನು 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
ಡೈನಾಮಿಕ್ ಮರುನಿರ್ದೇಶನವನ್ನು ಆಯ್ಕೆಮಾಡಿ, ಮರುನಿರ್ದೇಶನ ಮಾರ್ಗ concat("/en",http.request.uri.path,".htm")
ರಲ್ಲಿ /en
ದಯವಿಟ್ಟು ಸರ್ಚ್ ಇಂಜಿನ್ಗಳನ್ನು ಸೇರಿಸಲು ನೀವು ಬಯಸುವ ಡೀಫಾಲ್ಟ್ ಭಾಷೆಗೆ ಮಾರ್ಪಡಿಸಿ.
Baidu ಇಂಟೆಲಿಜೆಂಟ್ ಕ್ಲೌಡ್ ಕಾನ್ಫಿಗರೇಶನ್
ನೀವು ಚೀನಾದ ಮುಖ್ಯ ಭೂಭಾಗಕ್ಕೆ ಸೇವೆಗಳನ್ನು ಒದಗಿಸಬೇಕಾದರೆ, ನೀವು Baidu ಸ್ಮಾರ್ಟ್ ಕ್ಲೌಡ್ ಅನ್ನು ಬಳಸಬಹುದು.
Baidu ಆಬ್ಜೆಕ್ಟ್ ಸಂಗ್ರಹಣೆಗೆ ಡೇಟಾವನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು Baidu ವಿಷಯ ವಿತರಣಾ ನೆಟ್ವರ್ಕ್ಗೆ ಬದ್ಧವಾಗಿದೆ.
ನಂತರ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಈ ಕೆಳಗಿನಂತೆ 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
// ಔಟ್ಪುಟ್ನಂತಹ ಡೀಬಗ್ ಔಟ್ಪುಟ್ಗೆ ಪ್ರತಿಕ್ರಿಯೆ ಹೆಡರ್ಗಳನ್ನು ಹೊಂದಿಸಬಹುದು.XXX = 'MSG';
})
Debug
ಕ್ಲಿಕ್ ಮಾಡಿ, ನಂತರ ಸಂಪೂರ್ಣ ನೆಟ್ವರ್ಕ್ಗೆ ಪ್ರಕಟಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ.
ಸುಧಾರಿತ ಬಳಕೆ: ಪ್ರಾದೇಶಿಕ ನಿರ್ಣಯದ ಆಧಾರದ ಮೇಲೆ ದಟ್ಟಣೆಯನ್ನು ವಿತರಿಸಿ
ನೀವು ಚೀನಾದ ಮುಖ್ಯ ಭೂಭಾಗದಲ್ಲಿ ಸೇವೆಗಳನ್ನು ಒದಗಿಸಲು ಬಯಸಿದರೆ ಮತ್ತು cloudflare
ಉಚಿತ ಅಂತರಾಷ್ಟ್ರೀಯ ಸಂಚಾರವನ್ನು ಬಯಸಿದರೆ, ನೀವು ಪ್ರಾದೇಶಿಕ ರೆಸಲ್ಯೂಶನ್ನೊಂದಿಗೆ DNS
ಬಳಸಬಹುದು.
ಉದಾಹರಣೆಗೆ, Huawei Cloud DNS ಉಚಿತ ಪ್ರಾದೇಶಿಕ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದರೊಂದಿಗೆ ಮುಖ್ಯ ಭೂಭಾಗದ ಚೀನೀ ಟ್ರಾಫಿಕ್ ಬೈದು ಸ್ಮಾರ್ಟ್ ಕ್ಲೌಡ್ ಮೂಲಕ ಹೋಗಬಹುದು ಮತ್ತು ಅಂತರರಾಷ್ಟ್ರೀಯ ಸಂಚಾರ cloudflare
ಮೂಲಕ ಹೋಗಬಹುದು.
cloudflare
ರ ಸಂರಚನೆಯಲ್ಲಿ ಹಲವು ಮೋಸಗಳಿವೆ. ಇಲ್ಲಿ ಗಮನಿಸಬೇಕಾದ ಕೆಲವು ಅಂಶಗಳಿವೆ :
ಡೊಮೇನ್ ಹೆಸರನ್ನು ಇತರ DNS
ನಲ್ಲಿ ಹೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ, cloudflare
ಹೇಗೆ ಬಳಸುವುದು
ಮೊದಲು ಅನಿಯಂತ್ರಿತ ಡೊಮೇನ್ ಹೆಸರನ್ನು cloudflare
ಗೆ ಬಂಧಿಸಿ, ತದನಂತರ ಈ ಡೊಮೇನ್ ಹೆಸರಿಗೆ ಮುಖ್ಯ ಡೊಮೇನ್ ಹೆಸರನ್ನು ಸಂಯೋಜಿಸಲು SSL/TLS
→ ಕಸ್ಟಮ್ ಡೊಮೇನ್ ಹೆಸರನ್ನು ಬಳಸಿ.
ಕಸ್ಟಮ್ ಡೊಮೇನ್ ಹೆಸರಿನ ಮೂಲಕ cloudflare R2
ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ
ಏಕೆಂದರೆ cloudflare
ವಸ್ತು ಸಂಗ್ರಹಣೆ R2
ಕಸ್ಟಮೈಸ್ ಮಾಡಿದ ಡೊಮೇನ್ ಹೆಸರಿನ ಮೂಲಕ ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ, ಸ್ಥಿರ ಫೈಲ್ಗಳನ್ನು ಇರಿಸಲು ಮೂರನೇ ವ್ಯಕ್ತಿಯ ವಸ್ತು ಸಂಗ್ರಹಣೆಯನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ.
cloudflare
ನಲ್ಲಿ ಶೇಖರಿಸಬೇಕಾದ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ವಸ್ತುಗಳನ್ನು ಹೇಗೆ ಬಂಧಿಸುವುದು ಎಂಬುದನ್ನು ಪ್ರದರ್ಶಿಸಲು ನಾವು ಇಲ್ಲಿ ಉದಾಹರಣೆಯಾಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತೇವೆ backblaze.com
backblaze.com
ನಲ್ಲಿ ಬಕೆಟ್ ರಚಿಸಿ, ಯಾವುದೇ ಫೈಲ್ ಅನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ, ಫೈಲ್ ಅನ್ನು ಬ್ರೌಸ್ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು ಇಲ್ಲಿ f003.backblazeb2.com
ಆಗಿರುವ Friendly URL
ರ ಡೊಮೇನ್ ಹೆಸರನ್ನು ಪಡೆಯಿರಿ.
ಡೊಮೇನ್ ಹೆಸರನ್ನು 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
ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ ಮತ್ತು ಇತರ ಸಂರಚನೆಗಳು ಒಂದೇ ಆಗಿರುತ್ತವೆ.