Apache中偽靜態(tài)Rewrite的使用方法和URL重寫(xiě)規(guī)則表達(dá)式講解
目錄
- 一、安裝rewrite模塊
- 二、配置文件httpd.conf中啟用Rewrite
- 三、在服務(wù)器中找到配置文件vhosts.conf,啟用.htaccess
- 四、在要啟用偽靜態(tài)的項(xiàng)目根目錄下建立 .htaccess 文件
- 五、重啟Apache服務(wù)器,就OK了
- 六、參數(shù)補(bǔ)充說(shuō)明
apache中的mod_rewrite模塊提供了一個(gè)基于正則表達(dá)式分析器的重寫(xiě)引擎來(lái)實(shí)時(shí)重寫(xiě)URL請(qǐng)求,主要的功能就是實(shí)現(xiàn)URL的跳轉(zhuǎn),它的正則表達(dá)式是基于Perl語(yǔ)言??苫诜?wù)器級(jí)的(httpd.conf)和目錄級(jí)的(.htaccess)兩種方式,允許通過(guò)它來(lái)改變Apache Web服務(wù)器的配置。它支持每個(gè)完整規(guī)則可以擁有不限數(shù)量的子規(guī)則以及附加條件規(guī)則的靈活而且強(qiáng)大的URL操作機(jī)制。此URL操作可以依賴(lài)于各種測(cè)試,比如服務(wù)器變量、環(huán)境變量、HTTP頭、時(shí)間標(biāo)記,甚至各種格式的用于匹配URL組成部分的查找數(shù)據(jù)庫(kù)。
而配置偽靜態(tài)的方法,需要根據(jù)web服務(wù)器的不同來(lái)做不同的配置,一般常用的有Apache服務(wù)器和Nginx服務(wù)器,本篇只介紹在Apache服務(wù)器上開(kāi)啟和通過(guò).htaccess文件來(lái)配置偽靜態(tài)的方法。
一、安裝rewrite模塊
如果要想用到rewrite模塊,必須確保在已安裝或加載rewrite模塊。一般在編譯apache的時(shí)候就安裝了rewrite模塊。
二、配置文件httpd.conf中啟用Rewrite
打開(kāi)Apache配置文件httpd.conf,找到代碼:
#LoadModule rewrite_module modules/mod_rewrite.so
把前面#去掉。沒(méi)有則添加,但必須獨(dú)占一行,使apache支持 mod_rewrite 模塊。
三、在服務(wù)器中找到配置文件vhosts.conf,啟用.htaccess
打開(kāi)虛擬機(jī)配置文件vhosts.conf,找到代碼:
AllowOverride None
修改為: AllowOverride All
使Apache支持 .htaccess 文件
四、在要啟用偽靜態(tài)的項(xiàng)目根目錄下建立 .htaccess 文件
在.htaccess 文件中輸入內(nèi)容,示例如下
< 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 #更多偽靜態(tài)規(guī)則 < /IfModule>
// RewriteEngine on 為 啟動(dòng)rewrite引擎
// RewriteRule 部分為自己的偽靜態(tài)規(guī)則
五、重啟Apache服務(wù)器,就OK了
六、參數(shù)補(bǔ)充說(shuō)明
1、RewriteEngine 為重寫(xiě)引擎開(kāi)關(guān),on為開(kāi)啟,off為關(guān)閉。
2、RewriteRule 是路由轉(zhuǎn)向規(guī)則,之前路徑為瀏覽器中要輸入路徑,這里可以用正則表達(dá)式表達(dá)。+空格 后路徑為后臺(tái)實(shí)際轉(zhuǎn)向路徑。
3、轉(zhuǎn)向后臺(tái)實(shí)際路徑時(shí)可以傳參數(shù),$1 代表瀏覽器路徑中輸入的第一個(gè)正則表達(dá)式的值,以此類(lèi)推,$2代表第二個(gè)正則表達(dá)式的值。
4、RewriteRule 路由轉(zhuǎn)向規(guī)則里正則表達(dá)式用括號(hào) () 括起來(lái)。
5、在RewriteRule寫(xiě)法中,^表示語(yǔ)句開(kāi)始,$ 表示語(yǔ)句的結(jié)束,L 表明當(dāng)前規(guī)則是最后一條規(guī)則,停止分析以后重寫(xiě),NC表示不區(qū)分大小寫(xiě),QSA表示追加請(qǐng)求的字符串。
RewriteRule規(guī)則表達(dá)式的說(shuō)明: . 匹配任何單字符 [chars] 匹配字符串:chars [^chars] 不匹配字符串:chars text1|text2 可選擇的字符串:text1或text2 ? 匹配0到1個(gè)字符 * 匹配0到多個(gè)字符 + 匹配1到多個(gè)字符 ^ 字符串開(kāi)始標(biāo)志 $ 字符串結(jié)束標(biāo)志 \n 轉(zhuǎn)義符標(biāo)志
6、補(bǔ)充Apache mod_rewrite規(guī)則重寫(xiě)的標(biāo)志說(shuō)明:
1) R[=code](force redirect) 強(qiáng)制外部重定向 強(qiáng)制在替代字符串加上http://thishost[:thisport]/前綴重定向到外部的URL.如果code不指定,將用缺省的302 HTTP狀態(tài)碼。 2) F(force URL to be forbidden)禁用URL,返回403HTTP狀態(tài)碼。 3) G(force URL to be gone) 強(qiáng)制URL為GONE,返回410HTTP狀態(tài)碼。 4) P(force proxy) 強(qiáng)制使用代理轉(zhuǎn)發(fā)。 5) L(last rule) 表明當(dāng)前規(guī)則是最后一條規(guī)則,停止分析以后規(guī)則的重寫(xiě)。 6) N(next round) 重新從第一條規(guī)則開(kāi)始運(yùn)行重寫(xiě)過(guò)程。 7) C(chained with next rule) 與下一條規(guī)則關(guān)聯(lián) 如果規(guī)則匹配則正常處理,該標(biāo)志無(wú)效,如果不匹配,那么下面所有關(guān)聯(lián)的規(guī)則都跳過(guò)。 8) T=MIME-type(force MIME type) 強(qiáng)制MIME類(lèi)型 9) NS (used only if no internal sub-request) 只用于不是內(nèi)部子請(qǐng)求 10) NC(no case) 不區(qū)分大小寫(xiě) 11) QSA(query string append) 追加請(qǐng)求字符串 12) NE(no URI escaping of output) 不在輸出轉(zhuǎn)義特殊字符
到此這篇關(guān)于Apache中偽靜態(tài)Rewrite的使用方法和URL重寫(xiě)規(guī)則表達(dá)式講解的文章就介紹到這了,更多相關(guān)∪rL重寫(xiě)偽靜態(tài)Rewrite內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
相關(guān)文章:
1. 教你使用Apache搭建Http下載服務(wù)器2. 詳解apache編譯安裝httpd-2.4.54及三種風(fēng)格的init程序特點(diǎn)和區(qū)別3. Apache Pulsar 微信大流量實(shí)時(shí)推薦場(chǎng)景下實(shí)踐詳解4. 使用Apache Hudi 加速傳統(tǒng)的批處理模式的方法5. Apache POI操作批量導(dǎo)入MySQL數(shù)據(jù)庫(kù)6. Windows10安裝Apache2.4的方法步驟7. 服務(wù)器端如何開(kāi)啟GZIP壓縮功能(Apache、IIS、Nginx)8. Apache網(wǎng)頁(yè)的優(yōu)化、安全與防盜鏈圖文詳解9. 使用 DataAnt 監(jiān)控 Apache APISIX的原理解析10. 使用Apache Camel表達(dá)REST服務(wù)的方法
