我不太确定这是否是通过重写 URL 来完成的,但我不知道如何相应地命名它。
这是我的问题。我目前正在做一个网站项目,我正在使用 MVC 框架的抽象(它主要用于学习框架)。这就是我的文件夹结构的样子:
/controller/
|--indexcontroller.php
/myaccount/
|--/controller/
|--indexcontroller.php
|--index.php
/globals/
|--framework.php
/templates/
/options/
|--settings.php
|--config-www.php.inc
所以目前我正在使用自动加载器来加载所需的类。myaccount 文件夹中的 index.php 继承了应该处理类加载的框架类:
$urlparts = explode("/", $_SERVER['REQUEST_URI']);
$urlparts2 = explode("?", $urlparts[2]);
$class = str_replace(".php", "", $urlparts2[0]);
if ($class == "") {
$class = "index";
}
$letters_first = substr($class, 0, 1);
$letters_last = substr($class, 1, strlen($class));
$class = strtoupper($letters_first).$letters_last."Controller";
if (class_exists($class)) {
$object = new $class();
} else {
echo "Problem: class $class does not exist.";
}
我目前遇到的问题是,我只能使用“http://www.url.com/myaccount/”,它正在从 myaccount 加载控制器文件夹中的 indexcontroller.php(这很好)。但我也希望能够使用“http://www.url.com/myaccount/profile”,然后应该调用来自 myaccount 的控制器文件夹中的“profilecontroller.php”。
我怎样才能做到这一点?网址重写?还是我做错了?