0

私は次のようなURLを持っています

localhost/abc.com/info/c/q/Best%20Men

ここで、info はコントローラー、c はアクション、q はクエリ ID です。

c/q/ を削除し、スペース以外の URL を使用して、これらの URL を動的に書き直したいと思います。例えばこんな感じ

localhost/abc.com/info/Best_Men

urmanagerを使用することは可能ですか???

私はこのコードを試しましたが、うまくいきませんでした

'info/c/<q:\d+>'=>'info/<q:\d+>',

【編集後】

私の設定にはこれが含まれていました

'urlManager'=>array(

    'urlFormat'=>'path',
'showScriptName'=>false,
 'caseSensitive'=>false,
    'urlSuffix'=>'.html',    

        'urlFormat'=>'path',
        'rules'=>array(

            'info/<q:\w+>' => 'info/c'

                ),
    ),

詳細については、ここに私のURLは何ですか

http://localhost/abc.com/mycontroller/myactionsearch?q=Best

検索されたアイテムのリストが返され、開いたリンクをクリックすると、たとえば最高の男性をクリックすると、この下のリンクが開きます

http://localhost/abc.com/mycontroller/myactionItem/q/Best%20Men

実際には、同じコントローラー内に2つの異なるアクションがあり、次のように実行したい

http://localhost/abc.com/mycontroller/Best%20Men

また

http://localhost/abc.com/mycontroller/myactionItem/Best%20Men

しかし、上記の設定を使用すると、ページが見つからないというエラーが発生します

4

1 に答える 1

1

そのルートはいくつかの理由で間違っています:

  • 特定のクエリに一致しません ( \d「数字」を意味するため、「Best_Men」には一致しません)。
  • 有効なコントローラーアクションに転送されません
  • 値のペアを切り替える必要があります

これの代わりに、もっと似たものが欲しい

'info/<q:\w+>' => 'info/c'
于 2012-08-05T13:43:13.380 に答える