式関数により、式で使用するデータを操作します。式関数はSAFとは異なります。SAFはHTTPリクエストに関連付けられた実際の作業を実行するのに対し、式関数は、どのSAFを実行するかおよび何のパラメータをSAFに渡すかを選択するために使用されます黑丝 91。
一部の式関数には、1つ以上の引数が必要です。式関数では、引数リストをカッコ(())で囲み、個々の引数をカンマ(,)で区切ります。
次の項には、個々の式関数がリストされています:
atime
choose
ctime
escape
external
httpdate
lc
length
lookup
lookupregex
mtime
owner
uc
unescape
uuid
例
次のobj.confコードでは、chooseを使用して3つのイメージの中から1つをランダムに選択します:
NameTrans fn="rewrite" from="/images/random" path="/images/$(choose('iwsvi.jpg|0061.jpg|webservervii.jpg'))"
例
次の例は、接頭辞/home/を/u/に変更するために使用する、外部のリライト・プログラムrewrite.plです:
#!/usr/bin/perl
$| = 1;
while (<STDIN>) {
s|^/home/|/u/|;
print $_;
}
この例において、rewrite.plを起動するために使用するexternal式関数は、次のとおりです:
NameTrans fn="rewrite" path="$(external('rewrite.pl', $path))"
例
次のobj.confコードは、レスポンスが1日より長い期間キャッシュされていないことを示すExpiresヘッダーを設定するために使用できます:
ObjectType fn="set-variable"
insert-srvhdrs="$(httpdate($time + 86400))"
例
次のobj.confコードは、リクエストURIに間違って大笔墨を使用したクライアントを同等の小笔墨URIにリダイレクトするために使用できます:
<If code == 404 and not -e path and -e lc(path)>
Error fn="redirect" uri="$(lc($uri))"
</If>e($time + 86400))"
例
次のobj.confコードは、255バイトよりも長いURIをリクエストしたクライアントに404 Not Foundエラーを送信するために使用できます:
<If length($uri) > 255)>
PathCheck fn="deny-existence"
</If>
例
次の例は、ショートカットURIをURIにマップするlookup関数とともに使用できる、urimap.confというテキスト・ファイルを示しています:
# This file contains URI mappings for Oracle Traffic Director.
# Lines beginning with # are treated as comments.
# All other lines consist of a shortcut URI, whitespace, and canonical URI.
/webserver /software/products/web_srvr/home_web_srvr.html
/solaris /software/solaris/
/java /software/java/
前述のサンプル・テキスト・ファイルを使用して、よくアクセスするリソースのショートカットURIを実装するには、次のlookup式を使用します:黑丝 91
在线看三级片<If lookup('urimap.conf', uri)>
NameTrans fn="redirect" url="$(lookup('urimap.conf', uri))"
</If>