[英]Yii2 skip to other URL route if <controller>/<action> is not found
我有一個用於控制器操作的自定義URL路由,即:
['pattern'=>'<username>/<post_slug>', 'route'=>'post/view'],
輸入類似localhost/thisismyname/my-user-post
將使用預期的username
和post_slug
參數調用post/view
。
此路由的問題是我所有其他控制器操作都不再起作用。 localhost/post/index
將使用參數post
作為username
和index
作為post_slug
調用post/view
。
有沒有一種有效的方法可以優先使用<controller>/</action>
URL,如果沒有上述的<controller>/<action>
,它將把<username>/<post_slug>
參數傳遞給post/view
URL路線?
我不想創建單獨的路由,例如site/<controller>/<action>
也不想手動將每個控制器和操作作為路由添加到URL Manager中,因為兩者都是丑陋的解決方法。
您指定的規則非常含糊,因此幾乎所有路由都可以匹配它。
您可以編寫urlRule類並檢查是否為路由<username>/<post_slug>
路由。
作為另一種解決方案,您可以將此規則放在urlManager的規則配置數組的末尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.