0

この質問と同様に、url 拡張子を使用してフォーマットを渡すことはできましたが、事前に渡されたパラメーターを宣言する必要があります。例:

new Zend_Controller_Router_Route_Regex(
        '([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)(\.(\w+))?',
        array(
            'module'        => 'Default',
            'controller'    => 'index',
            'action'        => 'index',
        ),
        array(
            1    => 'module',
            2    => 'controller',
            3    => 'action',
            4    => 'extension',
            5    => 'format'
        )
);

しかし、/:module/:controller/:action/*.:format??? が必要な場合はどうすればよいですか? URLを通過するパラメータの数に関係なく、「.whatever」がフォーマットパラメータになりますか? 基本的に、デフォルト ルーターを使用して拡張子を「format パラメータ」として追加しようとしています。

編集:

問題は拡張機能を取得することではなく、他のパラメーターを追加することです。例えば

/blogs/posts/view/post/500/foo/bar/format/html

次のように変換されます: array('module'=>'blogs','controller'=>'posts', 'action' => 'view', 'post'=>500, 'format' => 'html', ' foo' => 'バー');

しかし、次のように同じルートでフォーマットを表現できるようにしたい:

/blogs/post/view/post/500/foo/bar.html

アクションとフォーマットの間で宣言されているパラメーターの数に関係なく。

4

1 に答える 1

0

whateverで指定できます.*

それに合わせるには - 簡単に:(.*)

たとえば拡張子を取得したくない場合は、次を使用します?

(.*?)(\.(\w+))
于 2011-05-20T14:35:48.243 に答える