Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie den Nginx-Seitensprung für verschiedene Browsersprachen

So konfigurieren Sie den Nginx-Seitensprung für verschiedene Browsersprachen

王林
王林nach vorne
2023-05-13 13:37:111112Durchsuche

Urteil für vereinfachtes und traditionelles Chinesisch

Ich möchte anhand der Accept-Language im http-Header entscheiden, ob vereinfachte oder traditionelle chinesische Dateien bereitgestellt werden sollen. In Chrome kann chrome://settings/Language ​​die bevorzugte Sprache festlegen, und der Browser legt den Header „Accept-Language“ entsprechend fest. Eine bessere Möglichkeit, damit umzugehen, besteht darin, das Feld zu analysieren, den q-Wert abzurufen und die am besten geeignete Sprache basierend auf der Priorität auszuwählen. Es wird jedoch nur zur Unterstützung von vereinfachtem und traditionellem Chinesisch verwendet. Ich möchte die Priorität ignorieren, solange die Wörter zh-hant, zh-tw, zh-hk usw. in der Accept-Sprache vorkommen Traditionelles Chinesisch, ansonsten Rückkehr zum vereinfachten Chinesisch.

map $http_accept_language $lang {
 default zhs;
 ~zh-hant zht;
 ~zh-tw zht;
 ~zh-hk zht;
}

Ich verwende Hexo, um die Website zu erstellen, und die Quelldateien sind in traditionellem Chinesisch verfasst. Verwenden Sie für die von Hexo Generate generierte Datei 2015-10-06-nginx-accept-Language-zhs-zht.html opencc, um sie in die vereinfachte Version zu konvertieren: 2015-10-06-nginx-accept-Language-zhs-zht. html.zhs .html. Abhängig von der Situation müssen einige andere Dateien konvertiert werden, z. B. atom.xml und popular.json, die die Funktion „Meistgelesene Artikel“ bereitstellen.

# zsh
cd ~/maskray.me/public
opencc -c t2s.json -i atom.xml -o atom.xml.zhs.xml
for i in **/*.html 20*; do # 选择需要简繁体支持的文件
 c=${#${(s/.html/%)i}//[^%]/} # 计算子串`.html`出现次数
 if (( $c <= 1 )); then   # 出现一次的为原始文件,需要转换成简体
 opencc -c t2s.json -i $i -o $i.zhs.html
 fi
done

Geben Sie in der Nginx-Konfigurationsdatei die Route an, die Unterstützung für vereinfachtes und traditionelles Chinesisch erfordert:

location ~ ^/blog/20?? {
 try_files $uri.$lang.html $uri =404;
 add_header vary accept-language;
}

location ~ /atom.xml {
 try_files $uri.$lang.xml $uri =404;
 add_header vary accept-language;
}

location ~ \.json$ {
 try_files $uri.$lang.json $uri =404;
 add_header vary accept-language;
}

# 其他需要简繁体支持的路由


Weiterleitung zu verschiedenen Seiten entsprechend der Accept-Sprache im HTTP-Anforderungsheader:
Gehen Sie direkt zum Code

if ($http_accept_language ~* ^zh){
    set $lang "/index_cn.jsp";
}
if ($http_accept_language !~* ^zh){
    set $lang "/index_en.jsp";
}
 
location =/ {
    proxy_set_header host $host;
    proxy_set_header x-real-ip $remote_addr;
    proxy_set_header x-forwarded-for $remote_addr;
    proxy_pass http://localhost:8080$lang;
}

Test:
http://www.findmaven.net ist eine Suchmaschine für findjar und findmaven

Rückkehr So konfigurieren Sie den Nginx-Seitensprung für verschiedene Browsersprachen

So konfigurieren Sie den Nginx-Seitensprung für verschiedene Browsersprachen

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie den Nginx-Seitensprung für verschiedene Browsersprachen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen