キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
2778
閲覧回数
0
いいね!
1
返信

CiscoACE4710アプライアンスにてURLに[?]をmatchさせることが可能か。

Hiroto Wada
Level 1
Level 1

ご担当者様

ACE4710にてリクエストとして受け付けるURLの文字列によって動作を変えたいのですが、

[?]は可能でしょうか。

http://www.cisco.com/cisco/web/support/JP/docs/ANS/DCAppServs/ACE4700AppCntrlEngineAppl/CG/010/16201_01_3.html?bid=0900e4b18252969b#61151

URL の照合時の正規表現では、ピリオド(.)および疑問符(?)が 文字通りの意味を持ちません。

これらの記号を照合する場合は、角カッコ([ ])を使用します。

たとえば、www.xyz.com の代わりに www[.]xyz[.]com を入力します。

ドット(.) または疑問符(?)のエスケープとしてバックスラッシュを使用することもできます。

上記より設定可能ではないかと思ったのですが、例えば『/api/test?method=abc』

(methodの部分も単なる文字列として利用)の場合など、

3 match http url /api/test.* →macthする

3 match http url /api/test[?].* →macthしない

となり、要は設定できない(動作しない)と思っております。

以上お手数ですがご確認の程よろしくお願い申し上げます。

1件の返信1

yushimaz
Cisco Employee
Cisco Employee

ACE において url 中の "?" は特別な意味を持ち、"match http url" では "?" より前までしか検索せず、query 部分 ("?" より後ろ) は secondary cookie として設定する必要があります。

>3 match http url /api/test.* →macthする

>3 match http url /api/test[?].* →macthしない

>

>となり、要は設定できない(動作しない)と思っております。

そのため、上記ご認識の通り、後者は期待通りに動作しません。

ドキュメント中に、同じような文言が複数あるので、ドキュメント制作者が違いについてしっかりと確認せずにコピー&ペーストを行ったものと思います。

下記にも同様のやり取りがあるので、あわせてご参照ください。

https://supportforums.cisco.com/message/459384#459384

"?" に関して検索エンジン等で探すのは難しいので、RFC 等で使用しているその前後の用語を用いて検索すると、関連したものが見つかりやすいです。

今回の場合、"ACE match url query" をキーワードに検索エンジンや英語版の CSC で検索を行うと関連したものが見つかると思います。

--- RFC2616 ---

3.2.2 http URL

   The "http" scheme is used to locate network resources via the HTTP

   protocol. This section defines the scheme-specific syntax and

   semantics for http URLs.

   http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]