影像演算支援以規則運算式比對和替代規則為基礎的簡單要求前置處理機制。
預先處理規則的集合(規則集)可附加至材料目錄或預設目錄。 只有在請求未附加特定材料目錄時,才適用預設目錄中的規則。
請求預先處理規則可在伺服器的請求剖析器處理請求之前,修改請求的路徑和查詢部分,包括操作路徑、新增命令、變更命令值,以及套用範本或巨集。 規則也可用來設定和覆寫某些目錄屬性,以及將服務限制在特定的使用者端IP位址。
規則集會儲存為XML檔案檔案。 規則集檔案的相對或絕對路徑必須在 attribute::RuleSetFile
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ruleset SYSTEM" RuleSet.dtd">
<ruleset>
<rule>
<expression>
<varname>
expression
</varname></expression>
<substitution>
<varname>
substitution
</varname></substitution>
<addressfilter>
<varname>
addressFilter
</varname></addressfilter>
</rule>
</ruleset>
此 <?xml>
, <!DOCTYPE>
和 <ruleset>
即使未定義實際規則,有效規則集XML檔案中的元素永遠是必要的。
一 <ruleset>
包含任意數量的元素 <rule>
允許元素。
預先處理規則檔案的內容區分大小寫。
在任何其他處理作業之前,會先對傳入的HTTP要求進行部分剖析,以決定應該套用哪些材質目錄。 識別目錄後,將套用所選目錄(或預設目錄,如果未識別特定目錄)的規則集。
此 <rule>
會依照為符合專案指定的順序搜尋元素,該符合專案的內容為 <expression>
元素( expression
)。
若為 <rule>
符合,選填 substitution
會套用,而修改後的請求字串會傳遞至伺服器的請求剖析器,以進行正常處理。
如果在結束日期時沒有成功比對 <ruleset>
到達時,請求會傳遞至剖析器,而不會進行修改。
預設行為可修改 OnMatch
的屬性 <rule>
元素。 OnMatch
可設為 break
(預設), continue
,或 error.
元素和屬性 |
發生相符時的行為 |
---|---|
<rule OnMatch="break"> |
在套用此規則的替代之後,規則處理會立即終止。 預設. |
<rule OnMatch="continue"> |
會套用替代,並會繼續處理下一個規則。 |
<rule OnMatch="error"> |
規則處理會立即終止,且「已拒絕要求」回應狀態會傳回給使用者端。 |
<rule>
元素可選擇性地定義屬性,在成功比對規則時覆寫對應的目錄屬性,並且 OnMatch="break"
已設定。 若符合下列條件,則不會套用任何屬性 OnMatch="continue"
已設定。 請參閱 <rule>
以取得可用規則控制的屬性清單。
簡單字串比對適用於非常基本的應用程式,但在大多數情況下都需要規則運算式。 雖然規則運算式是符合業界標準的,但具體的實施會因執行個體而異。
套件java.util.regex 說明「影像伺服」使用的特定規則運算式實施。
為了便於修改複雜的URL,您可以在運算式中透過以括弧(…)括住子字串來擷取子字串。 擷取的子字串會根據前導括弧的位置,從1開始依序編號。 擷取的子字串可以使用插入替代中 $n
,其中 n
是擷取的子字串的序號。
一個規則集檔案可附加至每個具有目錄屬性的材料目錄 attribute::RuleSetFile
. 雖然您可以隨時編輯規則集檔案,但影像伺服器只有在重新載入關聯的材質目錄時才會辨識變更。 當以下情況時,就會發生這種情況: Platform Server 會啟動或重新啟動,並且每當主要目錄檔案(具有 .ini 檔案字尾)已修改或「已接觸」(以變更檔案日期)。
規則集範例位於「影像伺服」檔案中「影像目錄參考」的對應區段中。