0

我对 PHP 很陌生,我已经设法创建了一个非常粗糙的 CMS。目前,它正在使用许多不同的页面和包含。

但是,如果可能的话,我想使用一个控制器而不是有很多页面(我已经有了article.php/admin.php)。

作为一个例子,我试图转换成这样的东西:

switch ( 'admin' ) {
case 'home':
    include 'view/home.php';
    break;

case 'admin':
    include 'view/admin.php';
    break;

case 'article':
    include 'view/article.php';
    break;

default:
    echo 'default';
    break;
}

这将与 一起使用$_GET['page'],因此管理 URL 如下所示:http://cms.dev/?page=admin

但是,如果我需要转到 admin 的子目录会怎样?例如,如果这些是硬编码页面,我会选择admin/new-post.php. 有没有我可以得到的等价物,使用$_GET method

抱歉,如果这没有得到很好的解释。让我知道,我会尝试编辑它。我已经使用了大量的教程,所以我不是 100% 的。

4

1 回答 1

0

$_GET['page']您可以在变量中使用正斜杠,因此https://cms.dev/?page=admin/new-post.php应该可以正常工作。

或者,您可以将其放入您的 .htaccess 中:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

然后从 REQUEST_URI 中获取:

$uri = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
于 2014-04-21T16:58:21.273 回答