Apache RewriteBase 指令使用介紹
RewriteBase URL-path
RewriteBase用于設(shè)定重寫(xiě)的基準(zhǔn)URL。在下文中,你可以看見(jiàn)RewriteRule可以用于目錄級(jí)的配置文件中 (.htaccess)并在局部范圍內(nèi)起作用,即規(guī)則實(shí)際處理的只是剝離了本地路徑前綴的一部分。處理結(jié)束后,這個(gè)路徑會(huì)被自動(dòng)地附著回去。默認(rèn)值 是”RewriteBase physical-directory-path”。
在對(duì)一個(gè)新的URL進(jìn)行替換時(shí),此模塊必須把這個(gè)URL重新注入到服務(wù)器處理中。為此,它必須知道其對(duì)應(yīng)的URL前綴或者說(shuō)URL基準(zhǔn)。通常,此前綴就是 對(duì)應(yīng)的文件路徑。但是,大多數(shù)網(wǎng)站URL不是直接對(duì)應(yīng)于其物理文件路徑的,因而一般不能做這樣的假定! 所以在這種情況下,就必須用RewriteBase指令來(lái)指定正確的URL前綴。
如果你的網(wǎng)站服務(wù)器URL不是與物理文件路徑直接對(duì)應(yīng)的,而又需要使用RewriteBase指令,則必須在每個(gè)對(duì)應(yīng)的.htaccess文件中指定 RewriteRule 。
RewriteBase指令顯式地設(shè)置了目錄級(jí)重寫(xiě)的基準(zhǔn)URL。在下文中,你將看到RewriteRule可以用于目錄級(jí)的配置文件中(.htaccess)并在局部范圍內(nèi)起作用,即規(guī)則實(shí)際處理的只是剝離了本地路徑前綴的一部分。處理結(jié)束后,這個(gè)路徑會(huì)被自動(dòng)地附著回去。默認(rèn)值是"RewriteBasephysical-directory-path"。
在對(duì)一個(gè)新的URL進(jìn)行替換時(shí),此模塊必須把這個(gè)URL重新注入到服務(wù)器處理中。為此,它必須知道其對(duì)應(yīng)的URL前綴或者說(shuō)URL基準(zhǔn)。通常,此前綴就是對(duì)應(yīng)的文件路徑。但是,大多數(shù)網(wǎng)站URL不是直接對(duì)應(yīng)于其物理文件路徑的,因而一般不能做這樣的假定! 所以在這種情況下,就必須用RewriteBase指令來(lái)指定正確的URL前綴。
如果你的網(wǎng)站服務(wù)器URL不是與物理文件路徑直接對(duì)應(yīng)的,你必須在每個(gè)使用RewriteRule的.htaccess文件中使用RewriteBase指令。
例如,目錄級(jí)配置文件內(nèi)容如下:
# /abc/def/.htaccess -- /abc/def 目錄的配置文件
# 注意:/abc/def 是 /xyz 的物理路徑(例如存在一條'Alias /xyz /abc/def'指令)。
RewriteEngine On# 讓服務(wù)器知道我們使用的是 /xyz 而不是物理路徑 /abc/defRewriteBase /xyz
# 重寫(xiě)規(guī)則RewriteRule ^oldstuff\.html$ newstuff.html
上述例子中,對(duì)/xyz/oldstuff.html的請(qǐng)求被正確地重寫(xiě)為對(duì)物理文件/abc/def/newstuff.html的請(qǐng)求。
僅供Apache Hacker們參考
以下列出了內(nèi)部處理的詳細(xì)步驟:
請(qǐng)求: /xyz/oldstuff.html內(nèi)部處理過(guò)程: /xyz/oldstuff.html -> /abc/def/oldstuff.html (per-server Alias) /abc/def/oldstuff.html -> /abc/def/newstuff.html (per-dir RewriteRule) /abc/def/newstuff.html -> /xyz/newstuff.html (per-dir RewriteBase) /xyz/newstuff.html -> /abc/def/newstuff.html (per-server Alias)
結(jié)果: /abc/def/newstuff.html
雖然這個(gè)過(guò)程看來(lái)很繁復(fù),但是由于目錄級(jí)重寫(xiě)的到來(lái)時(shí)機(jī)已經(jīng)太晚了,它不得不把這個(gè)(重寫(xiě))請(qǐng)求重新注入到 Apache核心中,所以Apache內(nèi)部確實(shí)是這樣處理的。但是:它的開(kāi)銷并不象看起來(lái)的那樣大,因?yàn)橹匦伦⑷胪耆贏pache服務(wù)器內(nèi)部進(jìn)行,而且這樣的過(guò)程在Apache內(nèi)部也為其他許多操作所使用。所以,你可以充分信任其設(shè)計(jì)和實(shí)現(xiàn)是正確的。
- 如何在Ubuntu下啟動(dòng)Apache的Rewrite功能
- apache 開(kāi)啟重定向 rewrite的實(shí)現(xiàn)方法
- Apache的Rewrite設(shè)置多域名301跳轉(zhuǎn)到主域名的方法
- Apache中Virtual Host虛擬主機(jī)配置及rewrite參數(shù)說(shuō)明
- Apache mod_rewrite實(shí)現(xiàn)HTTP和HTTPS重定向跳轉(zhuǎn)
- php檢測(cè)apache mod_rewrite模塊是否安裝的方法
- PHP偽靜態(tài)Rewrite設(shè)置之APACHE篇
- 啟用 Apache Rewrite 重寫(xiě)模塊的詳細(xì)過(guò)程
相關(guān)文章
詳解linux pwm驅(qū)動(dòng)編寫(xiě)
這篇文章主要介紹了詳解linux pwm驅(qū)動(dòng)編寫(xiě),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-042018即將推出的Apache Spark 2.4都有哪些新功能
即將發(fā)布的 Apache Spark 2.4 版本是 2.x 系列的第五個(gè)版本。 本文對(duì)Apache Spark 2.4 的主要功能和增強(qiáng)功能進(jìn)行了概述,需要的朋友可以參考下2018-09-09linux中vim如何刪除當(dāng)前文件中的所有內(nèi)容
這篇文章主要介紹了linux中vim如何刪除當(dāng)前文件中的所有內(nèi)容問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Linux系統(tǒng)實(shí)現(xiàn)ansible自動(dòng)化安裝配置httpd的方法
這篇文章主要介紹了Linux系統(tǒng)實(shí)現(xiàn)ansible自動(dòng)化安裝配置httpd的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02Centos 6.4 安裝Python 2.7 python-pip的詳細(xì)步驟
這篇文章主要介紹了Centos 6.4 安裝Python 2.7 python-pip的詳細(xì)步驟,需要的朋友可以參考下2017-03-03lanmp(Linux Apache Nginx Mysql Php) 的安裝配置
lanmp(Linux Apache Nginx Mysql Php) 的安裝配置,需要的朋友可以參考下。2010-11-11在 Linux 命令行中使用 tcpdump 抓包的一些功能
tcpdump 是一款靈活、功能強(qiáng)大的抓包工具,能有效地幫助排查網(wǎng)絡(luò)故障問(wèn)題。接下來(lái)通過(guò)本文給大家介紹在 Linux 命令行中使用 tcpdump 抓包的一些常用功能,需要的朋友參考下吧2018-11-11