Apache RewriteRule 是 Apache HTTP 伺服器中的一個富強功能,它容許經由過程正則表達式對 URL 停止重寫,實現 URL 的美化、暗藏實在道路、靜態鏈接靜態化等目標。本文將深刻探究 Apache RewriteRule 的利用方法跟技能,幫助妳更好地控制網站 URL 重寫之道。
什麼是 RewriteRule?
RewriteRule 是 Apache 伺服器頂用於 URL 重寫的關鍵指令。它容許妳根據正則表達式婚配規矩,將懇求的 URL 重寫為另一個 URL。這種技巧平日用於改良網站的用戶休會跟查抄引擎優化(SEO)。
怎樣啟用 RewriteRule?
- 確保 mod_rewrite 模塊已載入:
打開 httpd.conf 文件,找到以下行並撤消注釋:
LoadModule rewrite_module modules/mod_rewrite.so
- 啟用 RewriteEngine:
在 httpd.conf 文件中,找到以下行並撤消注釋或增加:
RewriteEngine On
- 重啟 Apache 效勞:
重啟 Apache 效勞以利用變動:
sudo systemctl restart apache2
RewriteRule 的基本語法
RewriteRule 的基本語法如下:
RewriteRule pattern substitution [flags]
- pattern:用於婚配 URL 的正則表達式。
- substitution:當 pattern 婚配成功時,URL 將被調換為 substitution 指定的值。
- flags:可選的標記,用於把持重寫行動。
罕見 RewriteRule 標記
以下是一些常用的 RewriteRule 標記:
- R[code]:強迫外部重定向,如
R301
表示永久重定向。 - F:禁止 URL,前去 403 HTTP 狀況碼。
- G:強迫 URL 為 GONE,前去 410 HTTP 狀況碼。
- P:強迫利用代辦轉發。
- L:表示以後規矩是最後一條,結束分析後續規矩。
- N:重新從第一條規矩開端運轉重寫過程。
- C:與下一條規矩關聯。
- TMIME-type:強迫設定 MIME 範例。
- NS:只在非外部子懇求時掉效。
- NC:不辨別大小寫婚配。
- QSA:追加懇求字元串。
RewriteRule 示例
以下是一些 RewriteRule 的示例:
- 將舊 URL 重定向到新 URL:
RewriteRule ^old-url$ /new-url [R301]
- 將靜態 URL 重寫為靜態 URL:
RewriteRule ^product/([0-9]+)/shoes$ /index.php?id=$1&name=shoes [L]
- 暗藏實在文件道路:
RewriteRule ^uploads/([^/]+)$ /protected/$1 [L]
總結
Apache RewriteRule 是一個富強的東西,可能幫助妳優化網站 URL,進步用戶休會跟 SEO。經由過程控制 RewriteRule 的利用方法跟技能,妳可能更好地管理網站 URL,使其愈加美不雅、易讀跟查抄引擎友愛。