農林漁牧網

您現在的位置是:首頁 > 農業

Apache開啟偽靜態和配置偽靜態Rewrite的方法

2022-08-14由 碼農大蔡哥 發表于 農業

箱線圖怎麼分析描述

什麼是偽靜態?

偽靜態是相對真實靜態來講的,很多時候我們希望使用偽靜態來設定我們網站的URL,而偽靜態只是改變了URL的顯示形式,實際上還是一個動態的頁面。偽靜態的頁面字尾可以是html、htm或者是目錄格式等。像thinkphp等框架的pathinfo模式,也是偽靜態的一種。

Apache開啟偽靜態和配置偽靜態Rewrite的方法

那麼為什麼要用偽靜態呢?

一是為了seo最佳化,偽靜態有利於搜尋引擎的收錄,能夠增加網站最佳化效果;二是為了讓URL看起來更簡單,更加友好易讀,也給人一種專業性的感覺。

Apache開啟偽靜態和配置偽靜態Rewrite的方法

而配置偽靜態的方法,需要根據web伺服器的不同來做不同的配置,一般常用的有Apache伺服器和Nginx伺服器,本篇只介紹在Apache伺服器上開啟和透過。htaccess檔案來配置偽靜態的方法。Nginx伺服器配置偽靜態的方法我再另外開篇文章來寫。

一、如果要想用到rewrite模組,必須確保在已安裝或載入rewrite模組。一般在編譯apache的時候就安裝了rewrite模組。

二、在Apache配置檔案httpd。conf中啟用Rewrite

開啟Apache配置檔案httpd。conf,找到程式碼:

#LoadModule rewrite_module modules/mod_rewrite。so

把前面#去掉。沒有則新增,但必須獨佔一行,使apache支援 mod_rewrite 模組。

Apache開啟偽靜態和配置偽靜態Rewrite的方法

三、在伺服器中找到配置檔案vhosts。conf,啟用。htaccess

開啟虛擬機器配置檔案vhosts。conf,找到程式碼:

AllowOverride None

修改為:

AllowOverride All

使Apache支援 。htaccess 檔案

Apache開啟偽靜態和配置偽靜態Rewrite的方法

四、在要啟用偽靜態的專案根目錄下建立 。htaccess 檔案

在。htaccess 檔案中輸入內容

< IfModule mod_rewrite。c>

Options +FollowSymlinks -Multiviews

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

#RewriteRule RewriteRule index。html$ index。php

#RewriteRule ^(。*?)。html$ index。php?$1。html [QSA,PT,L]

#RewriteRule ^/index([0-9]*)。html$ /index。php?id=$1

#更多偽靜態規則

< /IfModule>

Apache開啟偽靜態和配置偽靜態Rewrite的方法

// RewriteEngine on 為 啟動rewrite引擎

// RewriteRule 部分為自己的偽靜態規則

五、重啟Apache伺服器,就OK了

六、引數

補充說明

1、RewriteEngine 為重寫引擎開關,on為開啟,off為關閉。

2、RewriteRule 是路由轉向規則,之前路徑為瀏覽器中要輸入路徑,這裡可以用正則表示式表達。+空格 後路徑為後臺實際轉向路徑。

3、轉向後臺實際路徑時可以傳引數,$1 代表瀏覽器路徑中輸入的第一個正則表示式的值,以此類推,$2代表第二個正則表示式的值。

4、RewriteRule 路由轉向規則里正則表示式用括號 () 括起來。

5、在RewriteRule寫法中,^表示語句開始,$ 表示語句的結束,L 表明當前規則是最後一條規則,停止分析以後重寫,NC表示不區分大小寫,QSA表示追加請求的字串。

6、補充Apache mod_rewrite規則重寫的標誌說明:

1) R[=code](force redirect) 強制外部重定向

強制在替代字串加上http://thishost[:thisport]/字首重定向到外部的URL。如果code不指定,將用預設的302 HTTP狀態碼。

2) F(force URL to be forbidden)禁用URL,返回403HTTP狀態碼。

3) G(force URL to be gone) 強制URL為GONE,返回410HTTP狀態碼。

4) P(force proxy) 強制使用代理轉發。

5) L(last rule) 表明當前規則是最後一條規則,停止分析以後規則的重寫。

6) N(next round) 重新從第一條規則開始執行重寫過程。

7) C(chained with next rule) 與下一條規則關聯

如果規則匹配則正常處理,該標誌無效,如果不匹配,那麼下面所有關聯的規則都跳過。

8) T=MIME-type(force MIME type) 強制MIME型別

9) NS (used only if no internal sub-request) 只用於不是內部子請求

10) NC(no case) 不區分大小寫

11) QSA(query string append) 追加請求字串

12) NE(no URI escaping of output) 不在輸出轉義特殊字元