Apache-2.4
Apache .htaccess - If 指令評估首頁是否是目前頁面
如果載入的頁面是首頁(),我只是想設置一個標題
/
,但是,我無法做到這一點。我試過的:#let's find var value - its echo / on the header PassEnv REQUEST_URI Header always set Echo %{REQUEST_URI}e <If "%{REQUEST_URI} =~ m#^/$#"> #some other rules - never hits Header always set Test "It works" </If>
有人可以幫忙嗎?
這很可能是與 mod_dir 和
DirectoryIndex
. (或標準的內部重寫,如果您使用的是前端控制器模式 - 儘管這通常不適用於這種情況。)
<If>
在 mod_dir 已經將請求(以內部子請求的形式)重寫到目錄索引文件之後,表達式被合併晚,例如。. 更新伺服器變數以反映重寫的 URL 路徑。/index.html``REQUEST_URI
因此,您要麼需要檢查目錄索引文件:
<If "%{REQUEST_URI} =~ m#^/index\.html$#"> #some other rules... Header always set Test "It works" </If>
或者,
THE_REQUEST
改為檢查伺服器變數,該變數包含請求標頭的第一行,並且在內部重寫請求時不會更改。
THE_REQUEST
當請求GET / HTTP/1.1
首頁 ( ) 時,將包含表單的字元串。/
例如:
<If "%{THE_REQUEST} =~ m#^[A-Z]{3,7}\s/\s#"> #some other rules... Header always set Test "It works" </If>
在旁邊:
PassEnv REQUEST_URI
PassEnv
此處不需要該指令。REQUEST_URI
已經是 Apache 伺服器變數並且可用於您的腳本。