php - 为什么我在路由时必须通过 index.php
问题描述
我正在学习php中的路由。我遇到了这个问题,我不知道如何解决它。这是我的 index.php 文件。
<?php
$database = require "Core/bootstrap.php";
$router = new Router;
require "routes.php";
require $router->direct('contact');
我的路线:
<?php
$router->define([
'' => 'Controller/index.php',
'about' => 'Controller/about.php',
'about/culture' => 'Controller/about-culture.php',
'contact' => 'Controller/contact.php'
]);
最后是路由器类:
<?php
class Router {
protected $routes = [];
public function define($routes){
$this->routes = $routes;
}
public function direct($uri){
if(array_key_exists($uri, $this->routes)){
return $this->routes[$uri];
}}}
在上面的示例中,我将“联系人”作为我的预定义路线。我打开“本地主机”,它会将我带到“联系人”页面,但如果我写“本地主机/联系人”,我会得到“404 未找到”。如果我去通过 'localhost/index.php/contact' 一切正常。其他路由也一样。我知道这里的问题是(我可能是错的)绝对和相对路径。我使用的是 Fedora 28,我搜索了 .htaccess 但我不明白该怎么做。我将不胜感激,而不仅仅是一个答案。
解决方案
推荐阅读
- arrays - 从绑定的谷歌应用脚本中的电子表格中获取特定的行值(或值)
- python - python pandas groupby 详细信息和求和
- flutter - 在使用 TextEditingController 设置初始值后颤振编辑 TextField 中的值
- php - 在 Cart::add 中放置一个 mas 字段时出错
- azure - Azure AD Connect 预配代理日志中出现错误的超慢用户预配
- azure-devops - 执行发布质量门任务时 Azure devops 中的 SonarQube 错误
- python - 获取错误编解码器无法对位置 8-13 中的字符进行编码:字符映射到
- c# - HttpClient - 请求被取消 - 超时 100 秒
- ios - 从 PHAsset 中检索原始图像(或视频)
- python - 为什么 MOD_SHIFT 事件键在 PYGAME Mac 中不起作用