在url中只显示params:Yii url重写

时间:2014-06-18 11:34:43

标签: yii url-rewriting yii-url-manager

我一直在尝试以下规则来删除所有三个'模块名称','控制器','动作'并在yii中仅显示params:

'/<country:\w+>/<trip:\w+>/<poi:\w+>' => 'module/detail/index/'

工作正常。但是,只要调用来自其他模块的url(例如'other-module / controller / action'),就会激活规则。无论如何在模块内部或仅为一个模块实现规则?

非常感谢提前

2 个答案:

答案 0 :(得分:1)

您的网址规则过于宽泛,可能适用于很多网址路径。

对我来说,解决问题的最佳方法是创建一个自定义url rule class,检查<country:\w+>是否与国家/地区名称相匹配(它可能与数组或数据库中的一个匹配)如果你有一张包含所有国家的表格。)

检查yii guide,它们对汽车品牌有同样的看法

答案 1 :(得分:1)

我认为你需要在URL中使用一些静态字符串来区分它。动态URL会导致问题,它不允许您调用保持相同结构的特定模块。

您可以为任何自定义静态字符串添加前缀或后缀。

我希望有所帮助。