文件
一個 專案

try_files

將要求 URI 路徑改寫為網站根目錄中存在的檔案清單中的第一個檔案。如果沒有檔案相符,則不執行改寫。

語法

try_files <files...> {
	policy first_exist|smallest_size|largest_size|most_recently_modified
}
  • <files...> 是要嘗試的檔案清單。URI 路徑將改寫為第一個存在的檔案。

    若要比對目錄,請在路徑後加上尾隨斜線 /。所有檔案路徑都是相對於網站 根目錄,並且會展開 glob 模式

    每個引數也可以包含查詢字串,在這種情況下,如果查詢字串與該特定檔案相符,查詢字串也會變更。

    如果 try_policyfirst_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
}