如何解决使用PHP Mamp,Xamp时,在此服务器上找不到请求的URL
我使用Mamp创建Php服务器。 默认主页为homecontroller。但是,当我单击导致首页或任何URL的URL时,出现了一个问题:在此服务器上找不到请求的URL / ltw / home。当我更换受保护的$ controller =“ home”;通过任何控制器,它都可以在我进入索引页面时加载。
class App
{
protected $controller = "home";
protected $action = "default";
protected $params = [];
public function __construct()
{
//Array ( [0] => home [1] => 1 [2] => 2 [3] => 3 )
$arr = $this->UrlProcess();
// print_r($arr);
//Handle Controller
if (file_exists("./mvc/controllers/". $arr[0] ."Controller.php")){
$this->controller = $arr[0];
unset($arr[0]);
}
require_once "./mvc/controllers/" . $this->controller . "Controller.php";
$this->controller = new $this->controller;
//Handle Action
if (isset($arr[1]) && method_exists($this->controller,$arr[1])){
$this->action = $arr[1];
unset($arr[1]);
}
//Handle Params
$this->params = $arr?array_values($arr):[];
$arr2 = array($this->params);
//Call a controller->action->params
call_user_func_array([ $this->controller,$this->action ],$arr2 );
// print_r($this->params);
}
此错误仅在mac和xampp上出现
解决方法
我建议您在.htacess根目录中使用:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mvc/index.php?url=$1 [QSA,L]
如果没有帮助,则应将主控制器修改为:
<?php
class Core
{
public function start() {
$url = '/';
if (isset($_GET['url'])) {
$url .= $_GET['url'];
}
$params = array();
if (!empty($url) && $url != '/') {
$url = explode('/',$url);
array_shift($url);
$currentController = $url[0].'Controller';
array_shift($url);
if (isset($url[0]) && !empty($url[0])) {
$currentAction = $url[0];
array_shift($url);
} else {
$currentAction = 'index';
}
if (count($url) > 0) {
$params = $url;
}
} else {
$currentController = 'homeController';
$currentAction = 'index';
}
if ( !(file_exists('controllers/'.$currentController.'.php') || file_exists('controllersReport/'.$currentController.'.php')) || !method_exists($currentController,$currentAction)) {
$currentController = 'notfoundController';
$currentAction = 'index';
}
$c = new $currentController();
call_user_func_array(array($c,$currentAction),$params);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。