Apache RewriteBase 指令使用介紹
RewriteBase URL-path
RewriteBase用于設定重寫的基準URL。在下文中,你可以看見RewriteRule可以用于目錄級的配置文件中 (.htaccess)并在局部范圍內起作用,即規(guī)則實際處理的只是剝離了本地路徑前綴的一部分。處理結束后,這個路徑會被自動地附著回去。默認值 是”RewriteBase physical-directory-path”。
在對一個新的URL進行替換時,此模塊必須把這個URL重新注入到服務器處理中。為此,它必須知道其對應的URL前綴或者說URL基準。通常,此前綴就是 對應的文件路徑。但是,大多數(shù)網(wǎng)站URL不是直接對應于其物理文件路徑的,因而一般不能做這樣的假定! 所以在這種情況下,就必須用RewriteBase指令來指定正確的URL前綴。
如果你的網(wǎng)站服務器URL不是與物理文件路徑直接對應的,而又需要使用RewriteBase指令,則必須在每個對應的.htaccess文件中指定 RewriteRule 。
RewriteBase指令顯式地設置了目錄級重寫的基準URL。在下文中,你將看到RewriteRule可以用于目錄級的配置文件中(.htaccess)并在局部范圍內起作用,即規(guī)則實際處理的只是剝離了本地路徑前綴的一部分。處理結束后,這個路徑會被自動地附著回去。默認值是"RewriteBasephysical-directory-path"。
在對一個新的URL進行替換時,此模塊必須把這個URL重新注入到服務器處理中。為此,它必須知道其對應的URL前綴或者說URL基準。通常,此前綴就是對應的文件路徑。但是,大多數(shù)網(wǎng)站URL不是直接對應于其物理文件路徑的,因而一般不能做這樣的假定! 所以在這種情況下,就必須用RewriteBase指令來指定正確的URL前綴。
如果你的網(wǎng)站服務器URL不是與物理文件路徑直接對應的,你必須在每個使用RewriteRule的.htaccess文件中使用RewriteBase指令。
例如,目錄級配置文件內容如下:
# /abc/def/.htaccess -- /abc/def 目錄的配置文件
# 注意:/abc/def 是 /xyz 的物理路徑(例如存在一條'Alias /xyz /abc/def'指令)。
RewriteEngine On# 讓服務器知道我們使用的是 /xyz 而不是物理路徑 /abc/defRewriteBase /xyz
# 重寫規(guī)則RewriteRule ^oldstuff\.html$ newstuff.html
上述例子中,對/xyz/oldstuff.html的請求被正確地重寫為對物理文件/abc/def/newstuff.html的請求。
僅供Apache Hacker們參考
以下列出了內部處理的詳細步驟:
請求: /xyz/oldstuff.html內部處理過程: /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)
結果: /abc/def/newstuff.html
雖然這個過程看來很繁復,但是由于目錄級重寫的到來時機已經(jīng)太晚了,它不得不把這個(重寫)請求重新注入到 Apache核心中,所以Apache內部確實是這樣處理的。但是:它的開銷并不象看起來的那樣大,因為重新注入完全在Apache服務器內部進行,而且這樣的過程在Apache內部也為其他許多操作所使用。所以,你可以充分信任其設計和實現(xiàn)是正確的。
相關文章
2018即將推出的Apache Spark 2.4都有哪些新功能
即將發(fā)布的 Apache Spark 2.4 版本是 2.x 系列的第五個版本。 本文對Apache Spark 2.4 的主要功能和增強功能進行了概述,需要的朋友可以參考下2018-09-09Linux系統(tǒng)實現(xiàn)ansible自動化安裝配置httpd的方法
這篇文章主要介紹了Linux系統(tǒng)實現(xiàn)ansible自動化安裝配置httpd的方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02Centos 6.4 安裝Python 2.7 python-pip的詳細步驟
這篇文章主要介紹了Centos 6.4 安裝Python 2.7 python-pip的詳細步驟,需要的朋友可以參考下2017-03-03lanmp(Linux Apache Nginx Mysql Php) 的安裝配置
lanmp(Linux Apache Nginx Mysql Php) 的安裝配置,需要的朋友可以參考下。2010-11-11在 Linux 命令行中使用 tcpdump 抓包的一些功能
tcpdump 是一款靈活、功能強大的抓包工具,能有效地幫助排查網(wǎng)絡故障問題。接下來通過本文給大家介紹在 Linux 命令行中使用 tcpdump 抓包的一些常用功能,需要的朋友參考下吧2018-11-11