2016-08-02 7 views
0

いくつかのフォームと簡単なインタラクティブなページを含む内部使用(外部アクセスなし)のために、シンプル/小規模のWebサイトをかなり素早くまとめる必要があります。/index.phpをウェブサイトのシンプルなテンプレートとドキュメントルーターとして使用していますか?

私は実際にはCMSのメンテナンスオーバーヘッドは望んでいませんが、各ページが一貫したルックアンドフィールなどを持つように、各ページをラップする共通のテンプレートに基づいておくと便利です

1つのアプローチは、個々のページ内にPHPを使用してさまざまなスニペットを含めることですが、各ページに繰り返しが含まれていますが、これは一意のページコンテンツの周りにHTMLヘッダー、タイトル、あとで実質的に物事を変える必要があるかもしれないと判断した場合は、スケールアップしてください。

代替のアプローチは、メインのDocumentRoot index.phpファイルをテンプレートとして使用し、代わりに要求されたページ 'within'をインクルードすることです(他の各ページは実際には実際には実際には'title'と 'body'の変数(メインページ本文のコンテンツ))。

私は(任意GETパラメータが存在する可能性がある場合には)全体リクエスト文字列を取得したいファイル(ドキュメントルートに対して)パスと$_SERVER['REQUEST_URI']を抽出する$_SERVER['PATH_INFO']を使用することができることがわかります。インデックスページ自体の実際の内容については、別の名前のファイルを代わりに含めることができます。 Apacheのリライトルールには、最終的なURIからindex.phpを削除することが可能な方法がいくつか存在するに違いありません。しかし、これ以上のことはまだ考えていません。

私はこれが以前何度も何度も遭遇したシナリオでなければならないと確信しています。私はこれを考え、自分の車輪を作り直そうと数日を費やすことができますが、私は実際にこれを行う時間がありません。そして、それはどんな場合でもそれを非常に有効に利用しないでしょう。

誰かがこれに「十分」であるか、「正式に」公開されていることを知っていますか?(現時点では、速いハックは実際のソフトウェアパッケージになりますか?)

ありがとうございました。

+0

MVCフレームワークは、達成しようとしているもののほとんどを処理します。かなり骨なしのものを探しているなら、あなたはMOフレームワークを試すことができます... http://github.com/interwap/mo-framework –

+0

あなたの提案に感謝します。残念ながら、私が使用しているWebサーバにはPHP 5.3しかありません。 (あなたのMo FrameworkはPHP 5.6が必要だと言っています) – dave559

答えて

0

「index.php?page = requested_pa​​ge」のように、あなたのリクエストされたページをurlパラメータとしてindex.phpに送ることができ、あなたのコンテンツを取得したい位置にindex.phpの次のルールを含めることができます。

<?php 
include("./pages/".$_GET['page'].".php"); 
?> 
+0

これは確かに私の最初の考えのラインに沿ったものでした。実質的にははるかに複雑ではないが、堅牢である(例えば、無効なページへのアクセスを防ぎ、ページパスだけを使用する(GET要求ではない)などを管理するなどの)既存のソリューションが存在することを期待していた。 )。 – dave559

0

これに入れる努力が単純なCMSを実装する努力よりも少ないかどうかはわかりません。ほとんどのシステムは簡単な設定で、ほとんどの作業を行います。 CMSを実装しないで保存すると、いつでもメンテナンス費用がかかります。悪いソフトウェアを作るための言い訳として、「内部使用」を使用しないでください。それが数週間で無視される1回限りのソリューションでない限り、あなた(または別の開発者)はソフトウェアを拡張して維持する必要があります。そのようなことは、インデックスのループをリダイレクトを停止し、インデックスにあなたのハンドラに静的コンテンツフォルダ(スーツへの変更)を要求以外のすべてを送信します

RewriteEngine on 
RewriteBase/
RewriteRule ^(?!index\.php$|(?:css|js|media)(?:/|$)). index.php [L] 

+0

あなたは正しいかもしれません。残念ながら、私たちは非常に限られた資源を有しており、「十分に良い」とは「十分に良い」とみなされています(しかし、これは私を幸せにしません)。私は、現時点ではどんな種類の複雑な新しいシステムをインストールして学習する時間がないのではないかと心配しています。私たちの既存の内部Webシステムは、現在の標準によって非常に陳腐化しており、まだ置き換えのためのリストのトップには達していません。私がセットアップしたいサイトは、合理的に制限されており、適切な新しいCMSをインストールするまではあまりにも複雑な目的ではありません。 – dave559

0

は、インデックスへのすべての要求をリダイレクトします。 $_SERVER['REQUEST_URI']でURLにアクセスします。

関連する問題