PHP重定向與偽靜態

104828720發表於2019-02-16

什麼是偽靜態

  • 偽靜態是相對真靜態來講

  • 偽靜態只是把URL改成靜態形式,實際上還是動態網頁

  • 偽靜態有著真靜態一樣的SEO

什麼是重定向(很常用重點學習)

  • 網路請求重新定一個方向,轉到別的位置

  • 分為內部外部,區別是外部重定向時,瀏覽器位址列中的URL會發生變化

  • http原本就支援重定向3XX

  • 使用重定向技術實現偽靜態

重定向的環境搭建

  • 安裝web伺服器(apache/nginx)

  • 載入mod_rewrite.so模組

重定向實現方式(主要有3種)

  1. 通過配置WEB伺服器主配置<DIRECTORY> (生產環境)

  2. 通過.htaccess (開發環境)

  3. 通過指令碼實現(外部重定向)

.htaccess重定向實現步驟

  • 第一步:在apache主配置檔案裡配置allowOverride All(重啟)

  • 第二步:在.htaccess檔案裡配置

RewriteEngine on 
RewriteRule ^(.*).html$ $1.php   //匹配html改成php

WEB伺服器主配置實現重定向

  • 直接在Apache配置檔案中找到<DIRECTORY>是web專案地址的加上下面程式碼:

RewriteEngine on 
RewriteRule ^(.*).html$ $1.php   //匹配html改成php

RewriteRule語法說明

  • RewriteRule 匹配模式 替換的URL [flags]

  • 匹配模式支援Prel格式的正規表示式rewrite變數

  • 替換的URL支援匹配模式的結果rewrite變數

  • 多個flags用逗號隔開(例如:[R=301,C])

RewriteRule flags說明

  • R 強制外部重定向,瀏覽器位址列url會發生變化,301永久重定向,302臨時重定向,例子:[R=301],[R](代表301)

  • C 連結下一條規則,如果有多條規則的話,則當前加[C]的規則與下條規則成為一個整體,第一天不匹配,那麼下一條就不進入

  • L 停止匹配後面的規則,如果有多條規則的話,當加[L]的規則匹配後,則停止後面規則的匹配

  • NE 不對URL的特殊字元進行轉義

  • NC 不區分大小寫

  • G 請求的網頁失效,伺服器返回410

  • QSA 用於在url中擷取查詢字串

相關文章