<?php
// 取得 HTTP_ACCEPT_LANGUAGE 前 5 字元(如 zh-cn, en-us)
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 5);
if ($lang === 'zh-cn') {
// 簡體中文
header('Location: /zh-cn/index.php');
} elseif ($lang === 'zh-tw') {
// 繁體中文
header('Location: /zh-tw/index.php');
} else {
// 預設英文
header('Location: /en/index.php');
}
exit;
?>
優點:搜尋引擎可抓取、無需 JavaScript、回應較快。
缺點:依賴瀏覽器送出的 Header,使用者無法輕易切換語言。
<script>
(function() {
var lang = navigator.language || navigator.userLanguage; // IE 相容
lang = lang.substr(0, 2).toLowerCase(); // 取前兩碼:zh, en, ja...
var urlMap = {
'zh': '/zh-cn/', // 可細分 zh-cn / zh-tw
'en': '/en/',
'ja': '/ja/',
'ko': '/ko/',
'de': '/de/'
};
var target = urlMap[lang] || '/en/'; // 預設英文
window.location.replace(target);
})();
</script>
優點:可偵測更精確的語言偏好、可結合 Cookie 記住使用者選擇。
缺點:需啟用 JavaScript、搜尋引擎可能不追蹤導向。
| 代碼 | 語言 | 地區變體 |
|---|---|---|
| zh | 中文 | zh-cn (簡體), zh-tw (繁體), zh-hk (香港) |
| en | 英文 | en-us, en-gb, en-au |
| ja | 日文 | ja-jp |
| ko | 韓文 | ko-kr |
| de | 德文 | de-de |
| fr | 法文 | fr-fr |
| es | 西班牙文 | es-es, es-mx |
HTTP_ACCEPT_LANGUAGE 格式:zh-CN,zh;q=0.9,en;q=0.8,解析時需考慮權重 (q值)locale_accept_from_http() (intl 擴充套件) 正確解析<meta http-equiv="refresh">),體驗較差且 SEO 不友善