我一直在尝试以下规则来删除所有三个'模块名称','控制器','动作'并在yii中仅显示params:
'/<country:\w+>/<trip:\w+>/<poi:\w+>' => 'module/detail/index/'
它工作正常 . 但是,只要调用来自其他模块的url(例如'other-module / controller / action'),就会激活规则 . 无论如何在模块内部或仅为一个模块实现规则?
提前谢谢了
您的网址规则过于宽泛,可能适用于很多网址路径 .
对我来说,解决问题的最佳方法是创建一个自定义url rule class,检查 <country:\w+> 是否与国家/地区名称相匹配(如果您有一个包含所有国家/地区的表,则可以匹配数组或数据库中的一个) .
<country:\w+>
检查yii guide,它们对汽车品牌也有同样的看法
我认为你需要在URL中使用一些静态字符串来区分它 . 动态URL会导致问题,它不允许您调用保持相同结构的特定模块 .
您可以为任何自定义静态字符串添加前缀或后缀 .
我希望有所帮助 .
2 回答
您的网址规则过于宽泛,可能适用于很多网址路径 .
对我来说,解决问题的最佳方法是创建一个自定义url rule class,检查
<country:\w+>
是否与国家/地区名称相匹配(如果您有一个包含所有国家/地区的表,则可以匹配数组或数据库中的一个) .检查yii guide,它们对汽车品牌也有同样的看法
我认为你需要在URL中使用一些静态字符串来区分它 . 动态URL会导致问题,它不允许您调用保持相同结构的特定模块 .
您可以为任何自定义静态字符串添加前缀或后缀 .
我希望有所帮助 .