3

これらのURLをSEO対応のURLに変換するにはどうすればよいですか?yiiでURLマネージャーを試しましたが、適切な結果が得られませんでした。URLマネージャーに関する優れたチュートリアルはありますか。

http://localhost/nbnd/search/city?city=new+york
http://localhost/nbnd/search/manualsearch?tosearch=Hotel+%26+Restaurants+&city=New+york&yt0=Search&searchtype=

URLマネージャーで次の設定をしてみました

'<controller:\w+>/<action:\w+>/<city:\d>'=>'<controller>/<action>',

これはURLで動作しますhttp://localhost/nbnd/search/city/city/Delhi

このURLをに減らしたいhttp://localhost/nbnd/search/city/Delhi

私のビューで生成するリンクは<?php echo CHtml::link(CHtml::encode($data->city), array('/search/city', 'city'=>$data->city)); ?>

これにより、リンクが生成されhttp://localhost/nbnd/search/city?city=Delhi ます。そのリンクを「いいね」に変換するにはどうすればよいですか。http://localhost/nbnd/search/city/Delhi

4

2 に答える 2

8

ルールは次のようになります(GETパラメーター名である余分な都市を削除するため):

'<controller:\w+>/<action:\w+>/<city:\w+>'=>'<controller>/<action>', // not city:\d, since Delhi is a string, not digit

したがって、ルールはパラメータ名と一致できる必要があります。foo/ Delhiがある場合は、を使用します<foo:\w+>

そして、(あなたの設定で) 、の?使用appendParamsCUrlManager削除するには:urlManager

'urlManager'=>array(
    'urlFormat'=>'path',
    'appendParams'=>true,
    // ... more properties ...
    'rules'=>array(
        '<controller:\w+>/<action:\w+>/<city:\w+>'=>'<controller>/<action>',
        // ... more rules ...
    )
)

いつappendParams

trueの場合、GETパラメーターはパス情報に追加され、スラッシュを使用して互いに分離されます。


更新:アクションに渡されるパラメーターが複数ある場合、つまり:

http://localhost/nbnd/search/manualsearch/Delhi?tosearch=restaurants

/*ルールの最後にaを使用します。

'<controller:\w+>/<action:\w+>/<city:\w+>/*'=>'<controller>/<action>'

フォームのURLを取得するには:

http://localhost/nbnd/search/manualsearch/Delhi/tosearch/restaurants    
于 2012-12-14T16:08:31.197 に答える
2

Yiiでは、URLを動的に作成できます。

$url=$this->createUrl($route,$params);
$route='post/read'.
$params=array('id'=>100)

次のURLを取得します。

/index.php?r=post/read&id=100

URL形式を変更するには、urlManagerアプリケーションコンポーネントを構成しcreateUrlて、新しい形式に自動的に切り替え、アプリケーションが新しいURLを正しく理解できるようにする必要があります。

array(
    ......
    'components'=>array(
        ......
        'urlManager'=>array(
            'urlFormat'=>'path',
        ),
    ),
);

これを取得します

/index.php/post/read/id/100

yii http://www.yiiframework.com/doc/guide/1.1/en/topics.urlのユーザーフレンドリーなURLについては、このリンクを参照して ください。

于 2012-12-14T10:54:40.890 に答える