Nginx 多語系進階設定 - iT 邦幫忙

文章推薦指數: 80 %
投票人數:10人

其實如果你們已經有各國別域名的話。

只要.com的做判斷就好。

其他的tw、jp。

你根本不需要再判斷語系。

程式碼寫個依域名鎖定語系就行了。

連session、cookie都用不到。

2 Nginx多語系進階設定 nginx kyoe 2020-06-1813:47:37‧702瀏覽 最近公司想把官方網站分開成中文版/英文版/日文版 每個語系版面不盡相同,所以預計會都分開做 然後有要求多語系的部份 目前是想在輸入統一網域company.com後各自依瀏覽器語言分別轉向各自網址-company.com.tw/company.com/company.jp 上網爬文後有看到可以直接在nginx處理掉這部份,但遇到一個問題,如果多語系轉向各自網站之後,有辦法依照上次使用者選擇的語系分嗎? 本來是想用cookie做,但不知道nginx能不能做cookie的判斷 分配原則大約是: 如果使用者有按過某個語系C(setcookie)=>nginx轉語系C 如果使用者第一次來沒按過東西或沒cookie記錄=>nginx依瀏覽器語言判斷 如果nginx真的沒法做到是不是就要做在下一層的後端語言中呢? 回答3 討論 邀請回答 追蹤 檢舉 × 邀請回答 輸入邀請回答者的帳號或暱稱 Loading 找不到結果。

已達邀請上限 邀請回答 {{result.user.nickname}} {{result.user.account}} 已邀請的邦友{{invite_list.length}}/5 取消邀請 {{invite.nickname}} {{invite.account}} 關閉 登入發表討論 3個回答 舊至新 新至舊 最高Like數 1 dragonH iT邦超人5級‧2020-06-1814:14:22 vue或react那類的前端framework 搭配i18n 可以把語言別寫在cookie或localstorage裡 user每次進來就是上次選擇的語言或預設 用瀏覽器判斷應該也是可以 反正就是js的操作 nginx操作cookie的話 應該可以參考這個 現在應該都是用i18n居多 應該比較少寫多個網站 因為只需要維護i18n的語言list就好 回應 1 分享 檢舉 kyoe iT邦新手5級‧ 2020-06-1814:42:51 檢舉 對,但是老闆對各國的版面有不同的排版跟要求...我的角度當然是i18n的好..就是.. 對,但是老闆對各國的版面有不同的排版跟要求...我的角度當然是i18n的好..就是.. 修改 登入發表回應 2 ㊣浩瀚星空㊣ iT邦超人1級‧2020-06-1815:17:17 nginx可以獲取到http_user_agent 這可以先做基本的裝置語系導向。

其實如果你們已經有各國別域名的話。

只要.com的做判斷就好。

其他的tw、jp。

你根本不需要再判斷語系。

程式碼寫個依域名鎖定語系就行了。

連session、cookie都用不到。

至於不同域名的session或cookie共用問題。

你可以全綁到.com上就好了。

回應 分享 檢舉 登入發表回應 1 froce iT邦大師1級‧2020-06-1815:35:26 一般來說瀏覽器會送Accept-Language的檔頭,對其做map,然後重導向即可。

範例參考下面網址: https://gist.github.com/varnav/782d5aeb42c6ffa77678025767013c95 map$http_accept_language$index_redirect_uri{ default"/en/"; "~(^|,)en.+,ru""/en/"; "~(^|,)ru.+,en""/ru/"; "~(^|,)en""/en/"; "~(^|,)ru""/ru/"; } location=/{ return302$index_redirect_uri; } 可以看到如果沒傳Accept-Language會導向/en/,如果ru在前會導向ru。

我沒實際測過就是了。

回應 1 分享 檢舉 kyoe iT邦新手5級‧ 2020-06-2009:16:07 檢舉 感謝大大 不過nginx我是有找到跳轉的方式 但現在想做到的是使用者如果有選過其他語言的話以他選過的為主這個比較麻煩 我期望的場景是使用者第一次透過.com總站進來後,轉往其他語言的子站時會被記錄,下次他進總站就直接幫他導去他曾選過的子站,除非他在從子站點連結回到總站,才會再回到總站 感謝大大 不過nginx我是有找到跳轉的方式 但現在想做到的是使用者如果有選過其他語言的話以他選過的為主這個比較麻煩 我期望的場景是使用者第一次透過.com總站進來後,轉往其他語言的子站時會被記錄,下次他進總站就直接幫他導去他曾選過的子站,除非他在從子站點連結回到總站,才會再回到總站 修改 登入發表回應 我要發表回答 立即登入回答 相關問題 关于nginx301重定向的问题高手帮忙看一下是什么问题 關於利用Dockerfile生成NginxImage一事討論 nginxrewrite+proxy_pass後的404轉跳 關於Centospurge安裝問題 關於Linuxnginxpurge安裝問題 關於purge404的問題 關於NginxGeoIP的相關問題 關於「Nginx正向代理Cache配置」問題 請教oxidized安裝問題 NGINX搭配WEBPACKDEVSERVER開發模式 iT邦幫忙鐵人賽 參賽組數 1087組 團體組數 52組 累計文章數 20477篇 完賽人數 572人 鐵人賽最新文章 .NetCoreWebApi_筆記21_Swagger及OpenAPI介紹與配置使用方式_API管理與測試探討 .NetCoreWebApi_筆記20_api結合ADO.NET資料庫操作part8_新聞文章查詢 .NetCoreWebApi_筆記19_api結合ADO.NET資料庫操作part7_新聞文章的編輯更新與刪除 .NetCoreWebApi_筆記18_api結合ADO.NET資料庫操作part6_新聞文章表格陳列查詢 .NetCoreWebApi_筆記17_api結合ADO.NET資料庫操作part5_新聞文章新增_新聞類別元素透過API綁定方式 [Bonus系列]-使用useCallback&useMemo的正確時機是什麼? 大盤到底能不能攻上一萬八?? gotodie?那個goto到底能不能用啊? 2021/12/12更新 予焦啦!一夢終須醒...... 前往鐵人賽 技術推廣專區 [Day2]抓取每日收盤價 [Day1]基本工具安裝 利用python取得永豐銀行API的Nonce [Day03]tinyML開發板介紹 永豐金融API測試員 [Day01]在享受tinyML這道美食之前 [Day3]使用ta-lib製作指標 [Day4]函數打包與買進持有報酬率試算 計算API所需要的參數:HashID 計算API所需要的參數:IV 前往鐵人賽 熱門問題 公司想要架設一個網購物站,但是不知道要怎麼規劃預算 正要準備開始上CCNA… 無網際網路時,請問兩台電腦如何‘無線’遠端連線 遠端監控電腦效能 如何設定一台電腦,有線網卡走公司內網,無線網卡走外網,同時運行? 關於網頁顯示問題 mssql資料庫搬移時,怎樣出所有需要的資料會比較好? 請問有在做關貿資料串接的資訊公司嗎? NAS、雲端儲存空間、隨身硬碟差別在那?怎麼選? 照片辨識比對軟體開發 IT邦幫忙 站方公告 【2021iThome鐵人賽】登登登!究竟獎落誰家,2021iThome鐵人賽得獎名單正式揭曉 熱門tag 看更多 13th鐵人賽 12th鐵人賽 11th鐵人賽 鐵人賽 2019鐵人賽 2018鐵人賽 javascript 2017鐵人賽 windows php python windowsserver linux c# 程式設計 資訊安全 css vue.js sql 分享 熱門回答 正要準備開始上CCNA… 遠端監控電腦效能 如何設定一台電腦,有線網卡走公司內網,無線網卡走外網,同時運行? NAS、雲端儲存空間、隨身硬碟差別在那?怎麼選? 無網際網路時,請問兩台電腦如何‘無線’遠端連線 照片辨識比對軟體開發 關於網頁顯示問題 公司想要架設一個網購物站,但是不知道要怎麼規劃預算 mssql資料庫搬移時,怎樣出所有需要的資料會比較好? DefaultDomainPolicy密碼複雜度 熱門文章 [Bonus系列]-使用useCallback&useMemo的正確時機是什麼? 【教學】簡單救回電腦資料 為了轉生而點技能-JavaScript,day23(Promise介紹 12.MYSQL淺談NULL 數位簽章(digitalsignature) D9.學習基礎C、C++語言 什麼是功能分解? .NetCoreWebApi_筆記17_api結合ADO.NET資料庫操作part5_新聞文章新增_新聞類別元素透過API綁定方式 【徵才/台北信義區】美商全職駐點MIS工程師 7.MYSQL表格程式語法 一週點數排行 更多點數排行 海綿寶寶(antijava) 居然解出來了(partyyaya) ㊣浩瀚星空㊣(yoching) 小山丘(a243318490) raytracy(raytracy) ccenjor(ccenjor) 純真的人(jer5173) PPTaiwan(Pochengtaiwan) Gary(mosbbs) souda(souda) × At 輸入對方的帳號或暱稱 Loading 找不到結果。

標記 {{result.label}} {{result.account}} 關閉



請為這篇文章評分?