我是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']
一起使用,因此管理员网址如下所示:http://cms.dev/?page=admin
然而,如果我需要转到admin的子目录会发生什么?例如,如果这些是硬编码页面,我会去admin/new-post.php
。使用$_GET method
?
对不起,如果没有得到很好的解释。让我知道,我会尝试编辑它。我使用了一个smorgsaboard的教程,所以我不是100%的任何一个。
答案 0 :(得分: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);