伪静态规则设置好了规则但是程序在执行下面跳转时访问的依旧是动 迅睿框架 更新 2020-11-25 15:38:13 小黄人 18html.com 伪静态规则设置好了规则"login.html" => "index.php?s=member&c=login&m=index",但是程序在执行下面跳转时,访问的依旧是动态地址?这个可以怎么设置吗?还是需要写死?dr_redirect(dr_member_url('login/index'));
理论上…… 框架的基础内容URL 应该全部支持伪静态才对的!
1、新建文件:config/router.php
<?php // 自定义URL路由模式 if (strpos($uri, 'member.html?') === 0) { $is_404 = 0; $arr = parse_url($uri); parse_str($arr['query'],$_GET); $_GET['s'] = 'member'; $_GET['c'] = 'login'; $_GET['m'] = 'index'; }2、重写路由类文件,新建文件:dayrui/My/Library/Router.php
<?php namespace My\Library; class Router extends \Phpcmf\Library\Router { // 重写会员路由 function member_url($url, $query = [], $self = SELF) { if ($url == 'login/index' && !$queyr) { return 'login.html'; } $url = parent::member_url($url, $query, $self ); $url = str_replace('index.php?s=member&c=login', 'login.html?', $url); return $url; } }写的比较粗糙,功能是没问题,还可以继续优化,
这是创始人的方法一,不需要写rewrte.php了
<?php // 自定义URL路由模式 if (strpos($uri, 'login.html') === 0) { $is_404 = 0; $arr = parse_url($uri); parse_str($arr['query'],$_GET); $_GET['s'] = 'member'; $_GET['c'] = 'login'; $_GET['m'] = 'index'; }写错了