仅显示url中的参数:Yii url重写

仅显示url中的参数:Yii url重写,yii,url-rewriting,yii-url-manager,Yii,Url Rewriting,Yii Url Manager,我一直在尝试以下规则来删除所有三个“模块名”、“控制器”、“操作”,并在yii中仅显示参数: '/<country:\w+>/<trip:\w+>/<poi:\w+>' => 'module/detail/index/' '//'=>'模块/详细信息/索引/' 它很好用。但无论何时调用来自其他模块(如“其他模块/控制器/操作”)的url,规则都会被激活。在模块内部还是仅针对一个模块实施规则 非常感谢您的url规则太宽,可能会应用于许多url路径 对我

我一直在尝试以下规则来删除所有三个“模块名”、“控制器”、“操作”,并在yii中仅显示参数:

'/<country:\w+>/<trip:\w+>/<poi:\w+>' => 'module/detail/index/'
'//'=>'模块/详细信息/索引/'
它很好用。但无论何时调用来自其他模块(如“其他模块/控制器/操作”)的url,规则都会被激活。在模块内部还是仅针对一个模块实施规则


非常感谢您的url规则太宽,可能会应用于许多url路径

对我来说,解决这个问题的最佳方法是创建一个自定义项,检查
是否与国家/地区名称相匹配(如果您有一个包含所有国家/地区的表,它可以与数组或数据库中的名称相匹配)


检查一下,他们对汽车品牌也做了类似的事情

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

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


我希望这会有所帮助。

将尝试一下,如果答案有效,请接受。如果需要,请毫不犹豫地寻求帮助。我已经在一个网站上做过了。我还有一个问题,希望你不会介意。如何在url中仅显示参数名称而不显示值?有可能吗?你能举个例子说明你想要什么吗?我会有country/someTitle/someTitle/并希望有相应的title值,以便我可以处理它。ie.title=myTitle,但只想显示title,需要获取title的值,即myTitle。意味着在url中只显示名称,但希望在操作中获得值。可能您需要在这条规则之前编写另一条规则,以便其他url首先与另一条规则匹配,而不是与这条规则匹配。您在Yii中声明规则事项的顺序;如果多个规则与URL匹配,将使用找到的第一个规则。