2016-08-12 16:18:10 5382次浏览 2条回答 0 悬赏 10 金钱

背景:
我已经开启了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' // 不行
]

是不是rules规则只支持\d这个正则啊?
要怎么配置才会有1这种效果呢?
在线等

  • 回答于 2016-08-12 16:40 举报
    rules => [
        'view/<id:[\w\d]+>' => 'site/view' // 支持数字和字符串
    ]
    
    4 条回复
    回复于 2016-08-12 16:48 回复

    那百分号%怎么办?

    回复于 2016-08-12 16:50 回复

    你这个id不是字符串吗?不就是一体,还考虑百分号?
    这是被转译的?

    回复于 2016-08-12 18:03 回复

    服务器返回的:The requested URL /view/x6Q0rXxh/oy6HxB0SsT5VA==.html was not found on this server.
    另外,\w里面没有包含%,正则匹配不到。

    回复于 2016-08-16 08:23 回复


    'view/<id:[%\w\d]+>' => 'site/view' 你试一试吧,为什么链接出现转译,很不友好的

  • 回答于 2016-08-12 23:59 举报

    把id urlencode

您需要登录后才可以回答。登录 | 立即注册
kybetter
实习生

kybetter

注册时间:2016-01-18
最后登录:2018-11-09
在线时长:0小时24分
  • 粉丝0
  • 金钱15
  • 威望0
  • 积分15

热门问题