亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教yii2的url rules如何配置id為字符串格式的路由?

請教yii2的url rules如何配置id為字符串格式的路由?

Yii
喵喔喔 2018-08-09 18:06:43
背景:我已經開啟了url美化,下面是目前的url規則URL: example.com/site/view?id=06XBvOuYTbVE9pH8t%2FKJg%3D%3D其中參數id的值是加密了的想要變成這種url:1、example.com/view/06XBvOuYTbVE9pH8t%2FKJg%3D%3D.html可是無論怎么配置都不好使,但是這樣的卻是可以的:2、example.com/view/1199.html其中2的路由規則很好配:rules => [    'view/<id:\d+>' => 'site/view' // 好使]但是1的路由規則怎么配都不好使:rules => [    'view/<id:[\w|%|=]+>' => 'site/view' // 不行     'view/<id:.*+>' => 'site/view' // 不行     'view/<id:.*>' => 'site/view' // 不行     '/view/<id:[^.]*>.html'=>'site/view?id=<id>' // 不行]是不是rules規則只支持\d這個正則???要怎么配置才會有1這種效果呢?在線等
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

我覺得吧,%2F 會被當做 / 去處理,可以對id的加解密函數外包一層,對 %2F 特殊處理(比如設置一個占位符代替)。

查看完整回答
反對 回復 2018-08-12
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

樓上回答的有道理,出現%2F意味著url變成 /view/06XBvOuYTbVE9pH8t/FKJg%3D%3D.html,所以必然無法匹配/view/<id>這種格式了。

此外該方案不客氣的說就是糊弄鬼呢。Friendly URL的目的是什么?提高可讀性,有助于SEO,一個不知所謂的加密串有這個作用嗎?和之前不優化直接?id=有任何不同嗎?就是走個形式而已,有意思?

正解方案是使用slug字段,例如 /view/iphone-6s-gold,這才是真正的優化。

不要說就是為了防止別人亂輸id啊,這是站不住腳的,不想多寫理由。而且slug方案也同樣解決了這個問題。


查看完整回答
反對 回復 2018-08-12
  • 2 回答
  • 0 關注
  • 1156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號