在yii中使用url管理器将url更改为seo友好型

在yii中使用url管理器将url更改为seo友好型,yii,seo,Yii,Seo,如何将这些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= '<controller:\

如何将这些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=
'<controller:\w+>/<action:\w+>/<city:\d>'=>'<controller>/<action>',
我尝试在url管理器中设置以下内容

http://localhost/nbnd/search/city?city=new+york
http://localhost/nbnd/search/manualsearch?tosearch=Hotel+%26+Restaurants+&city=New+york&yt0=Search&searchtype=
'<controller:\w+>/<action:\w+>/<city:\d>'=>'<controller>/<action>',
'/'=>'/',
它与url
http://localhost/nbnd/search/city/city/Delhi

我希望将此url缩减为
http://localhost/nbnd/search/city/Delhi

我在视图中生成的链接是

这会将链接生成为
http://localhost/nbnd/search/city?city=Delhi

如何将该链接转换为like
http://localhost/nbnd/search/city/Delhi

在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中参考此链接以获取用户友好的URL

规则应该是(要删除额外的城市,即GET参数名称):

追加参数时

如果为true,则GET参数将附加到路径信息中,并使用斜杠相互分隔


更新:如果向操作传递了多个参数,即:

http://localhost/nbnd/search/manualsearch/Delhi?tosearch=restaurants
在规则末尾使用
/*

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

你读了吗?@bool.dev我读得很透彻,但没有得到预期的结果,因为它起作用了,但不准确。好的,然后详细说明你是如何尝试的,你预期的结果是什么,你说的准确是什么意思。具体一点,你会得到具体的答案。@bool.dev我添加了我的问题,请看一看。但是当我有两个变量,或者当我使用任何名称或任何其他变量而不是ID时,我该如何处理?如果控制器中的函数能够处理它,你可以添加任意多的变量。例如,如果您想将name变量添加为一个额外的参数,那么在params数组中包括像$params=array('id'=>100,'name'=>'bct')这样的名称。结果将是/index.php/post/read/id/100/name/bct。注意你的函数应该是actionRead($id,$name)在再次阅读你的问题时,我意识到你可能也在寻找有多个参数的情况,比如在你的manualsearch操作中,所以我添加了详细信息,一定要跟上up@bool-dev感谢这一点,它的工作很好,但现在我被困在一些其他问题上,请看一看
http://localhost/nbnd/search/manualsearch/Delhi/tosearch/restaurants