Joomla 內建 SEF (Search Engine Friendly) 功能,能將動態參數 URL 轉為靜態化、含關鍵字的靜態路徑,是 SEO 基石。本文詳細拆解四階段漸進式啟用流程、別名最佳實踐、子目錄部署 $live_site 設定、常見 404/重導循環解決方案,助你一次上手、永無後患。
效果:
index.php?option=com_content&view=article&id=19&Itemid=27 → /index.php/joomla-overview
效果:
/index.php/joomla-overview → /index.php/joomla-overview.html
htaccess.txt 已重命名為 .htaccessmod_rewrite 且 AllowOverride All效果:
/index.php/joomla-overview.html → /joomla-overview.html
| 原則 | 說明 | 範例 |
|---|---|---|
| 唯一性 | 同層級菜單/文章別名不可重複 | about-us, about-us-2 |
| 小寫 + 連字號 | 標準化、可讀、避免編碼問題 | joomla-sef-guide |
| 避免特殊符號 | 空格、底線、標點可能導致重導問題 | ❌ joomla_sef, ❌ joomla sef |
| 語意化關鍵字 | URL 即標題,利於 SEO 點擊率 | joomla-sef-url-settings |
| 手動指定優於自動 | 自動產生常過長或含停用詞 | 編輯時手動填寫「別名」欄位 |
編輯 configuration.php:
// 根目錄安裝 public $live_site = ''; // 子目錄安裝(三選一,擇一即可) public $live_site = '/joomla'; public $live_site = 'https://example.com/joomla'; public $live_site = 'https://www.example.com/joomla';
注意:設定後需清除快取(系統 → 清除快取)。
| 問題 | 原因 | 解決 |
|---|---|---|
| 啟用階段 3 後全站 404 | mod_rewrite 未啟用 / AllowOverride 非 All / .htaccess 遺失 | 檢查 Apache 設定、確認 .htaccess 存在、重啟 Apache |
| 首頁正常、內頁 404 | .htaccess 內容受損 / RewriteBase 錯誤 | 重新複製 Joomla 原版 htaccess.txt 內容;子目錄加 RewriteBase |
| 重導循環 (ERR_TOO_MANY_REDIRECTS) | $live_site 設定錯誤 / HTTPS 強制重導衝突 | 檢查 $live_site;.htaccess 加入 HTTPS 判斷條件 |
| 中文別名顯示亂碼/編碼 | 未開啟 Unicode 別名 / 伺服器不支援 | 開啟 Unicode 別名;確認資料庫 utf8mb4、PHP mbstring |
| 舊動態 URL 未自動 301 導向新 SEF URL | Joomla 核心不自動處理 | 安裝「SH404SEF」或自寫外掛處理 301 導向 |
| 擴充套件 | 特色 | 適用場景 |
|---|---|---|
| sh404SEF | 301 導向、中繼資料管理、站點地圖、多語系支援 | 企業站、SEO 重度需求 |
| Route 66 | 輕量、自動別名優化、模組化 | 中小站、追求效能 |
| JoomSEF | URL 管理介面、自定義路由規則 | 需精細控制 URL 結構 |
[ ] 階段 1:核心 SEF 開啟 [ ] 階段 2:URL 後綴 .html 開啟 [ ] 階段 3:mod_rewrite + .htaccess + 後台「使用 URL 重寫」 [ ] 階段 4:Unicode 別名(視需求) [ ] 所有文章/分類/菜單已手動設定語意化別名 [ ] 子目錄部署已正確設定 $live_site [ ] 測試:前台瀏覽、直接輸入 SEF URL、舊動態 URL 301 導向 [ ] 提交站點地圖至 Google Search Console
遵循本指南,你的 Joomla 網站將擁有乾淨、語意豐富、搜尋引擎最愛的 URL 結構,為長期 SEO 佈局鋪平道路。