联系官方销售客服

1835022288

028-61286886

开发框架 版主:迅睿框架研发组
tag标签伪静态规则如何写
类型:迅睿CMS 更新时间:2021-04-01 12:26:09

tag标签伪静态规则如何写?

现象:

项目中会用到 “/index.php?s=tag&name=中国 ”的url,其中name的参数会有中文,我开启伪静态后,给这个URL配置的路由规则为:

"tag.html?name=([\u4e00-\u9fa5_a-zA-Z0-9]+)" => "index.php?s=tag&name=$1"

但我在home控制器中,无法获取到name参数的值,$_GET打印出来也只有:

Array ( [s] => tag [c] => home [m] => index )


问题:

我这个路由规则是否有误?tab标签获取参数的方式有不一样的吗?


回帖
  • 大圣
    #1楼    大圣
    2021-04-01 09:31:16
    Chrome 0
    你这个路由规则感觉有毛病呢
    "tag-(*).html" => "index.php?s=tag&name=$1"
  • 迅睿框架技术-实习
    #2楼    迅睿框架技术-实习
    2021-04-01 09:32:00
    Chrome 0
    "tag.html?name=(.+)" => "index.php?s=tag&name=$1"
    这样写但是我,我不建议在规则里面加问号
  • 飞鱼
    #3楼    飞鱼
    2021-04-01 09:55:15
    Chrome 0
    我配置了这个路由规则后,打开如:tag-中国.html后,直接是跳到404了~大圣
  • 迅睿框架技术-实习
    #4楼    迅睿框架技术-实习
    2021-04-01 09:56:56
    Chrome 0
    tag-中国.html对应的规则是
    "tag-(*).html" => "index.php?s=tag&name=$1",

    满意答案
  • 飞鱼
    #5楼    飞鱼
    2021-04-01 10:01:44
    Chrome 0
    谢谢,我最开始就是按这个规则来配置的,但是在home里打印$_GET就没有name参数内容,后面改成了"tag-(*).html?name=([\u4e00-\u9fa5_a-zA-Z0-9]+)"也还是不行~我静态规则的设置过程是这样的:在URL规则/伪静态 中:在这个模块中配置好nginx后,将对应的url规则配置到rewrite.php中,然后更新缓存。不知道这个步骤是否遗漏了什么?迅睿框架技术-实习
  • 飞鱼
    #6楼    飞鱼
    2021-04-01 11:31:47
    Chrome 0
    调整问题:url规则可以正常匹配,但伪静态后参数无法正常获取!URL对比结果:1、独立模块:xxx,正则 "bbb\/act\/([0-9]+).html(.*)" => 'index.php?s=bbb&act=&1' url格式1:http://www.xxx.com/index.php?s=bbb&act=1 在home中打印参数信息: print_r(\Phpcmf\Service::L('Input')->get()); 结果为: Array ( [s] => bbb [act] => 1 ) url格式2: http://www.xxx.com/bbb/act/1.html 打印参数结果为: Array ( [s] => bbb [act] => [1] => [c] => home [m] => index )2、标签模块:tag,正则:"tag.html\?name\=([u4e00-u9fa5_a-zA-Z0-9]+)" => 'index.php?s=tag&name=$1' //index.php?s=tag&name=中国,需要匹配中文
    url格式1:http://www.xxx.com/index.php?s=tag&name=中国 打印参数结果为: Array ( [s] => tag [name] => 中文 ) url格式2:http://www.xxx.com/tag.html?name=中国 打印参数结果为: Array ( [s] => tag [c] => home [m] => index )所以,问题出现在伪静态后参数的获取有变化了?
  • 十全八美
    #7楼    十全八美
    2021-04-01 11:34:43
    Chrome 0
    规则里面不能加问号的,复议二楼的书法
  • 飞鱼
    #8楼    飞鱼
    2021-04-01 12:26:09
    Chrome 0
    @迅睿框架技术-实习:问题已解决,个人有点小失误,把&act=$1写成了&act=&1,难怪一直不行,谢谢!