php 之apache rewrite偽靜態的簡單配置和使用
阿新 • • 發佈:2019-01-31
1、為什麼要使用偽靜態:
真正的靜態頁面空間儲存量大,進行刪除或者更新這些html檔案時可造成大量檔案碎片,破壞磁碟壞道,
動態頁面雖然可以實時更新,但是有時會導致死迴圈,對搜尋引擎不友好,而偽靜態卻不會出現這種情況。
偽靜態可以更好的緩解伺服器的壓力,增強搜尋引擎對頁面的收錄;
2、偽靜態可以做什麼:
rewrite 主要的功能就是實現url跳轉和隱藏真實地址,可以實現虛擬的靜態,虛擬的目錄,域名跳轉,隱藏後臺真實地址等,基於perl語言的正則表示式規範。 一個普通的動態連結可以通過rewrite 重寫為.html 的連結 /article.php?id=23 可以重寫為:/article_23.html 也可重寫為目錄的形式:/article_23/ 3、apache開啟rewrite重寫: 開啟apache的配置檔案(httpd.conf),搜尋# LoadModule rewrite_module modules/mod_rewrite.so如果想在.htaccess檔案中重寫規則,可以 在httpd.conf檔案中搜索AllowOverride None 修改為AllowOverride All 這樣就可以在網站根目錄建立.htaccess檔案寫rewrite規則了!
4、mod_rewrite 規則的使用:
RewriteEngine on //啟動rewrite引擎 RewriteCond %{HTTP_HOST} !^www.test.com [NC] //如果訪問網址不是www.test.com 後面的[NC] N重新從第一條規則開始執行重寫過程 C 與下一條相關聯 RewriteRule ^/(.*) http://www.testRewriteRule ^/article_([0-9]*)/$ /article.php?id=$1 [R] //將偽靜態 地址/article_XX/ 轉換為檔案加引數的格式
5、mod_rewrite 規則修正符 修正符 即 Rewrite 語句後面 “[]” 裡面的內容
1) R 強制外部重定向 2) F 禁用URL,返回403HTTP狀態碼。 3) G 強制URL為GONE,返回410HTTP狀態碼。 4) P 強制使用代理轉發。 5) L 表明當前規則是最後一條規則,停止分析以後規則的重寫。 6) N 重新從第一條規則開始執行重寫過程。 7) C 與下一條規則關聯 如果規則匹配則正常處理,以下修正符無效 8) T=MIME-type(force MIME type) 強制MIME型別 9) NS 只用於不是內部子請求 10) NC 不區分大小寫 11) QSA 追加請求字串 12) NE 不在輸出轉義特殊字元 \%3d$1 等價於 =$1求不拍磚~~~~~!