Apache中偽靜態(tài)Rewrite的使用方法和URL重寫規(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á)式分析器的重寫引擎來(lái)實(shí)時(shí)重寫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操作可以依賴于各種測(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 為重寫引擎開(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á)式的值,以此類推,$2代表第二個(gè)正則表達(dá)式的值。
4、RewriteRule 路由轉(zhuǎn)向規(guī)則里正則表達(dá)式用括號(hào) () 括起來(lái)。
5、在RewriteRule寫法中,^表示語(yǔ)句開(kāi)始,$ 表示語(yǔ)句的結(jié)束,L 表明當(dāng)前規(guī)則是最后一條規(guī)則,停止分析以后重寫,NC表示不區(qū)分大小寫,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ī)則重寫的標(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ī)則的重寫。 6) N(next round) 重新從第一條規(guī)則開(kāi)始運(yùn)行重寫過(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類型 9) NS (used only if no internal sub-request) 只用于不是內(nèi)部子請(qǐng)求 10) NC(no case) 不區(qū)分大小寫 11) QSA(query string append) 追加請(qǐng)求字符串 12) NE(no URI escaping of output) 不在輸出轉(zhuǎn)義特殊字符
到此這篇關(guān)于Apache中偽靜態(tài)Rewrite的使用方法和URL重寫規(guī)則表達(dá)式講解的文章就介紹到這了,更多相關(guān)∪rL重寫偽靜態(tài)Rewrite內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
相關(guān)文章:
1. Windows10安裝Apache2.4的方法步驟2. Apache POI操作批量導(dǎo)入MySQL數(shù)據(jù)庫(kù)3. 解決Tomcat啟動(dòng)失敗:嚴(yán)重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException 初始化組件失敗4. Apache結(jié)合Tomcat實(shí)現(xiàn)動(dòng)靜分離的方法5. 使用 Apache 反向代理的設(shè)置技巧6. 使用 Apache Dubbo 實(shí)現(xiàn)遠(yuǎn)程通信(微服務(wù)架構(gòu))7. 利用apache ftpserver搭建ftp服務(wù)器的方法步驟8. Apache Doris的Bitmap索引和BloomFilter索引使用及注意事項(xiàng)9. apache-zookeeper-3.7.1 安裝部署教程10. Apache JMeter 5.5 下載安裝及設(shè)置中文圖文教程
