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ますか?

これがうまく説明されていない場合は申し訳ありません。お知らせください。編集してみます。私はチュートリアルの smorgsaboard を使用したので、これについて 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 に答える