try_files
將要求 URI 路徑改寫為網站根目錄中存在的檔案清單中的第一個檔案。如果沒有檔案相符,則不執行改寫。
語法
try_files <files...> {
policy first_exist|smallest_size|largest_size|most_recently_modified
}
-
<files...> 是要嘗試的檔案清單。URI 路徑將改寫為第一個存在的檔案。
若要比對目錄,請在路徑後加上尾隨斜線
/
。所有檔案路徑都是相對於網站 根目錄,並且會展開 glob 模式。每個引數也可以包含查詢字串,在這種情況下,如果查詢字串與該特定檔案相符,查詢字串也會變更。
如果
try_policy
是first_exist
(預設值),則清單中的最後一個項目可以是數字,前面加上=
(例如=404
),作為備用方案,將發出具有該代碼的錯誤;錯誤可以透過handle_errors
捕捉和處理。 -
policy 是在檔案清單中選擇檔案的政策。
預設值:
first_exist
展開形式
try_files
指令基本上是
@try_files file <files...>
rewrite @try_files {file_match.relative}
請注意,此指令不接受比對器代碼。如果您需要更複雜的比對邏輯,請使用上述的擴充形式作為基礎。
請參閱 file
比對器 以取得更多詳細資訊。
範例
如果要求與任何靜態檔案不符,請改寫到您的 PHP 索引/路由器進入點
try_files {path} /index.php
相同,但將原始路徑加入查詢字串(某些舊版 PHP 應用程式需要)
try_files {path} /index.php?{query}&p={path}
相同,但也會比對目錄
try_files {path} {path}/ /index.php?{query}&p={path}
嘗試改寫到檔案或目錄(如果存在),否則發出 404 錯誤(可以使用 handle_errors
捕捉並處理)
try_files {path} {path}/ =404
選擇靜態檔案最新部署的版本(例如,當要求 index.html
時,提供 index.be331df.html
)
try_files {file.base}.*.{file.ext} {
policy most_recently_modified
}