duanbimo7212 2018-07-22 15:41
浏览 86

PHP自定义路由器错误404

I'm trying to create basic router in PHP,but only the index route works("").

When I try another route,like "login", I get the 404 error.

My router:

class Router {

 private $routes = [];

 public function __construct($routes)
 {
     $this->routes = $routes;       
 }

 public function directTo($uri)
 {
     if (array_key_exists($uri, $this->routes)) {

        return $this->routes[$uri];

     } 

     throw new \Exception("Route not found", 1);

 }

}

Routes file:

return [

  '' => 'controllers/IndexController.php',

  'login' => 'controllers/LoginController.php',

  'register' => 'controllers/RegisterController.php',

  'logout' => 'controllers/LogoutController.php',

];

App entry point (index.php):

require_once "vendor/autoload.php";

use App\Controllers\Router;

$routes = require_once "routes.php";

$uri = trim($_SERVER["REQUEST_URI"],'/');

$router = new Router($routes);

require $router->directTo($uri);

I think that the problem might be something about $uri variable in index.php, but I can't pinpoint the problem.

When I hard-code the $uri like this:

require $router->directTo("login");

it works like a charm.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 微信会员卡接入微信支付商户号收款
    • ¥15 如何获取烟草零售终端数据
    • ¥15 数学建模招标中位数问题
    • ¥15 phython路径名过长报错 不知道什么问题
    • ¥15 深度学习中模型转换该怎么实现
    • ¥15 HLs设计手写数字识别程序编译通不过
    • ¥15 Stata外部命令安装问题求帮助!
    • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
    • ¥15 TYPCE母转母,插入认方向
    • ¥15 如何用python向钉钉机器人发送可以放大的图片?