パラメータを1つだけ取得したいと思います。にとってexample site.ru/controller/action/param1/value/
しかし、私がフォローURLを要求した場合:
site.ru/controller/action/param1/value/param2/value2/param3/value4/
デフォルトではエラーは発生しません。
URLパラメータの深さを設定することは可能ですか?または、URL解析を介して手動で実行する必要がありますか?
パラメータを1つだけ取得したいと思います。にとってexample site.ru/controller/action/param1/value/
しかし、私がフォローURLを要求した場合:
site.ru/controller/action/param1/value/param2/value2/param3/value4/
デフォルトではエラーは発生しません。
URLパラメータの深さを設定することは可能ですか?または、URL解析を介して手動で実行する必要がありますか?
:module/:controller/:action
デフォルトルートでは、 (または単に:controller/:action
)パーツの後に任意の数のパラメーターを許可します。
これを制限したい場合は、独自のルートを作成してください。
http://framework.zend.com/manual/en/zend.controller.router.htmlを参照してください
次のコードを検討してください。
$route = new Zend_Controller_Router_Route(
'/:controller/:action/:id',
array('controller'=>'index','action'=>'index','id'=>''), //default values
array('controller'=>'[a-zA-Z-]','action'=>'[a-zA-Z-]+','id'=>'([0-9]+)') //patterns to match values
);
このルートは、リクエストがコントローラー名、アクション名、および ID の番号で構成される場合にのみトリガーされます。他のパラメーターが渡される場合、ルートはトリガーされません。
デフォルトでは、URL で使用される param => value ペアの量に制限はありません。
ただし、URL パラメーターを制限したい場合は、独自のカスタム ルートを作成できます。