← 返回文章列表

什麼是 URL Rewrite? 有什麼功用,對 SEO 有幫助嗎?什麼樣的網址才適合 SEO

Meta 描述: 深入了解 URL Rewrite 技術原理與實際應用,探討 URL 結構對 SEO 的影響,提供 SEO 友善網址的最佳實踐建議與實作範例。


目錄

  1. 什麼是 URL Rewrite?
  2. URL Rewrite 的主要功用
  3. URL Rewrite 對 SEO 有幫助嗎?
  4. 什麼樣的網址才適合 SEO?
  5. URL Rewrite 實作範例
  6. 常見錯誤與注意事項
  7. 結論

什麼是 URL Rewrite?

URL Rewrite(網址重寫) 是一種伺服器端技術,用於在網頁伺服器接收到請求時,將用戶看到的 URL 轉換成伺服器內部實際處理的路徑。這個轉換過程對用戶和搜尋引擎是完全透明的。

基本運作原理

階段 說明
用戶請求 用戶在瀏覽器輸入「美化後」的 URL
伺服器攔截 Web 伺服器(如 nginx、Apache)攔截請求
內部轉換 根據規則將 URL 轉換成實際的檔案路徑或腳本參數
處理回應 伺服器處理請求並返回內容,用戶看到的仍是美化後的 URL

實際例子對比

重寫前(傳統動態 URL):

https://example.com/product.php?id=123&category=electronics
https://example.com/article.php?slug=seo-guide&lang=zh-TW

重寫後(SEO 友善 URL):

https://example.com/products/electronics/123
https://example.com/articles/seo-guide

URL Rewrite 的主要功用

1. 美化網址,提升用戶體驗

乾淨、簡潔的 URL 更容易被用戶閱讀、記憶和分享。想像一下,您比較願意點擊哪個連結?

  • https://site.com/view.php?id=4829&cat=2&sort=desc
  • https://site.com/blog/2026/seo-best-practices

2. 隱藏技術細節,增強安全性

URL Rewrite 可以隱藏後端使用的技術棧、檔案結構和資料庫查詢參數,降低被攻擊的風險:

  • 不暴露程式語言副檔名(.php.asp.jsp
  • 不暴露伺服器目錄結構
  • 不暴露資料庫 ID 和查詢參數

3. 維持舊連結,無痛遷移網站

當網站重構或更換 CMS 時,URL 結構往往會改變。通過 URL Rewrite,可以將舊 URL 映射到新結構,避免產生大量 404 錯誤:

# 將舊網址重定向到新網址
rewrite ^/old-blog/(.*)$ /articles/$1 permanent;

4. 統一網址格式,避免內容重複

同一內容可能有多個訪問路徑,導致搜尋引擎視為重複內容。URL Rewrite 可以統一規範:

# 強制使用 www 版本
rewrite ^https?://example.com/(.*)$ https://www.example.com/$1 permanent;

# 強制使用 HTTPS
rewrite ^http://(.*)$ https://$1 permanent;

5. 支援多語言和地區化

通過 URL 結構區分不同語言版本,有助於國際化 SEO:

https://example.com/tw/products
https://example.com/us/products
https://example.com/jp/products

URL Rewrite 對 SEO 有幫助嗎?

官方立場

Google 官方明確表示:URL 結構是搜尋引擎排名因素之一,但影響程度相對較小。Google 搜尋倡導者 John Mueller 曾多次提到:

「清晰的 URL 結構主要幫助用戶,而非直接提升排名。但用戶體驗間接影響 SEO。」

對 SEO 的實際影響

影響層面 影響程度 說明
搜尋引擎爬取 中等 清晰的 URL 結構有助於爬蟲理解網站架構
關鍵字信號 輕微 URL 中的關鍵字可作為排名信號,但權重不高
點擊率(CTR) 清晰的 URL 在搜尋結果中更吸引用戶點擊
連結分享 中等 易讀的 URL 更容易被分享和引用
用戶信任度 中等 乾淨的 URL 看起來更專業、可信

間接 SEO 好處

雖然 URL Rewrite 本身不是強排名因素,但帶來的間接好處不容忽視:

  1. 更高的點擊率 → 搜尋引擎認為內容更相關 → 間接提升排名
  2. 更好的用戶體驗 → 降低跳出率 → 間接提升排名
  3. 更容易分享 → 更多自然連結 → 直接提升排名

什麼樣的網址才適合 SEO?

SEO 友善 URL 的最佳實踐

✅ 應該做的

  • 使用小寫字母:避免大小寫混淆,/Blog/SEO/blog/seo 可能被視為不同頁面
  • 使用連字號分隔單字:使用 - 而非 _ 或空格,Google 將連字號視為空格
  • 包含目標關鍵字:在 URL 中自然融入主要關鍵字,但避免過度優化
  • 保持簡潔:理想長度為 50-60 字元,最長不超過 2048 字元
  • 使用靜態結構:避免過多的參數和動態查詢字串
  • 反映網站架構:URL 應體現內容的分類層級
  • 使用 HTTPS:HTTPS 是 Google 的排名信號之一

❌ 應該避免的

  • 避免過長的 URL:超過 100 字元的 URL 在搜尋結果中會被截斷
  • 避免過多目錄層級:建議不超過 3-5 層,如 /a/b/c/d/e/f
  • 避免特殊字元:不要使用 !, @, #, $, % 等符號
  • 避免關鍵字堆砌/seo/seo-guide/seo-tips/seo-best 會被視為垃圾內容
  • 避免無意義的數字/product/12345 不如 /product/iphone-15
  • 避免日期(除非是新聞): evergreen 內容不建議在 URL 中包含日期

實際案例對比

類型 不建議 ❌ 建議 ✅
產品頁面 /product.php?id=8472 /products/apple-iphone-15-pro
文章頁面 /article.php?cat=5&pid=123 /blog/seo-url-rewrite-guide
分類頁面 /category.php?id=electronics /categories/electronics
使用者頁面 /user.php?uid=4829 /users/john-doe
帶參數的搜尋 /search.php?q=seo&sort=desc /search/seo(或使用 canonical)

URL Rewrite 實作範例

nginx 配置範例

# 基本 Rewrite 規則
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

# 產品頁面重寫
rewrite ^/products/([a-zA-Z0-9-]+)/([0-9]+)$ /product.php?slug=$1&id=$2 last;

# 文章頁面重寫
rewrite ^/blog/([a-zA-Z0-9-]+)$ /article.php?slug=$1 last;

# 分類頁面重寫
rewrite ^/categories/([a-zA-Z0-9-]+)$ /category.php?slug=$1 last;

# 強制 HTTPS
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

# 強制使用 www(或不使用 www)
server {
    listen 443 ssl;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}

Apache .htaccess 範例

RewriteEngine On

# 強制 HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# 產品頁面重寫
RewriteRule ^products/([a-zA-Z0-9-]+)/([0-9]+)$ /product.php?slug=$1&id=$2 [L,QSA]

# 文章頁面重寫
RewriteRule ^blog/([a-zA-Z0-9-]+)$ /article.php?slug=$1 [L,QSA]

# 分類頁面重寫
RewriteRule ^categories/([a-zA-Z0-9-]+)$ /category.php?slug=$1 [L,QSA]

# 移除 .php 副檔名
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

Nuxt 3 範例(現代前端框架)

// nuxt.config.ts
export default defineNuxtConfig({
  nitro: {
    routes: {
      "/products/:slug": {
        redirect: "/product/[slug]"
      }
    }
  }
})

// pages/products/[slug].vue
<template>
  <div>
    <h1>{{ product.name }}</h1>
  </div>
</template>

<script setup>
const route = useRoute()
const { data: product } = await useFetch(`/api/products/${route.params.slug}`)
</script>

常見錯誤與注意事項

1. 避免重寫迴圈

錯誤配置可能導致無限重寫迴圈,使伺服器崩潰:

# ❌ 錯誤:可能導致迴圈
rewrite ^/blog/(.*)$ /blog/$1 last;

# ✅ 正確:添加條件檢查
rewrite ^/blog/(.+)$ /index.php?slug=$1 last;

2. 正確使用 301 與 302 重定向

類型 用途 SEO 影響
301(永久) 網址永久變更,舊 URL 不再使用 傳遞 90-99% 的連結權重
302(暫時) 網址暫時變更,將來可能恢復 不傳遞連結權重

3. 設定 Canonical URL

當同一內容有多個 URL 時,使用 canonical 標籤告訴搜尋引擎哪個是主要版本:

<link rel="canonical" href="https://example.com/blog/seo-guide" />

4. 更新 Sitemap

更改 URL 結構後,務必更新 XML Sitemap 並重新提交到 Google Search Console。

5. 設定 301 重定向

舊 URL 應設定 301 重定向到新 URL,避免 404 錯誤和權重流失。

6. 測試重寫規則

使用工具測試 Rewrite 規則是否正確運作:

# 測試 nginx 配置
nginx -t

# 使用 curl 測試重定向
curl -I https://example.com/old-url

結論

URL Rewrite 是一項強大的技術,雖然對 SEO 的直接影響有限,但帶來的用戶體驗提升間接 SEO 好處不容忽視。

重點整理

  • URL Rewrite 主要價值:美化網址、隱藏技術細節、維持舊連結、統一 URL 格式
  • SEO 影響:直接影響輕微,但通過提升 CTR 和用戶體驗間接幫助排名
  • SEO 友善 URL 特徵:簡潔、小寫、連字號分隔、包含關鍵字、反映網站架構
  • 實作注意:避免重寫迴圈、正確使用 301 重定向、設定 canonical、更新 sitemap

最終建議

如果您正在規劃新網站,從一開始就採用 SEO 友善的 URL 結構是最理想的。如果已有舊網站,建議:

  1. 評估現有 URL 結構的問題
  2. 規劃新的 URL 規範
  3. 實作 URL Rewrite 規則
  4. 設定 301 重定向(舊→新)
  5. 更新 sitemap 並提交到搜尋引擎
  6. 監控 404 錯誤和搜尋排名變化

記住:URL 結構是用戶體驗的一部分,而不僅僅是 SEO 技巧。 為用戶設計,搜尋引擎自然會喜歡。


參考來源:

  • Google Search Central - URL Structure Best Practices
  • Moz - SEO-Friendly URL Structures
  • Ahrefs - URL Structure for SEO
  • nginx Documentation - Rewrite Module
  • Apache Documentation - mod_rewrite

作者: LinkPortal 編輯團隊
分類: 網站優化
更新日期: 2026-06-12