私はPHPとWeb開発全般に不慣れですが、5年間プログラマーを務めています。メモ帳を使用して自分のWebサイトで最初から作業し、サーバーのPHPファイルとWAMPを編集しようとしています。Safari、Chrome、Firefoxでファイルを正常に表示できますが、HTML5を使用しているため、IE(IEが最高ではないことは誰もが知っています)では表示できません。とにかく、ヘッダー、メニュー、フッターのファイルを保持するIncludesフォルダーがあります。これらのファイルを含み、正常に表示するindex.phpファイルがあります。ページの中央には、コンテンツが必要な場所があります。クリーンなURLを維持するために、かなりの数のフォルダーを作成し、そこに同じindex.phpファイルを配置しました(例:Profile / index.php、Forums / index.phpなど)。これを行ったので、localhost / mysite / profile /にアクセスすると、使用したいテンプレートが表示されました。でも、テンプレートを使用するためのより良い方法と、クリーンなURLを使用するためのより良い方法が必要です。私は現在このサイトをどこにもホストしていないので、htaccessファイルにアクセスできるかどうかはわかりません(正直なところ、それが何であるかはわかりませんが、言及されているだけです)が、フォルダ構造に興味がありました(メニュー項目ごとに1つのフォルダ)は通常の方法ですか、それとも大丈夫ですか?また、小さな変更を加えるたびにコピーして貼り付けることなく、index.phpを使用する方法があるかどうかにも興味がありました。どんな助けでもいただければ幸いです。ありがとう。しかし、フォルダ構造(メニュー項目ごとに1つのフォルダ)が通常の方法であるのか、それとも大丈夫なのかを知りたいと思いました。また、小さな変更を加えるたびにコピーして貼り付けることなく、index.phpを使用する方法があるかどうかにも興味がありました。どんな助けでもいただければ幸いです。ありがとう。しかし、フォルダ構造(メニュー項目ごとに1つのフォルダ)が通常の方法であるのか、それとも大丈夫なのかを知りたいと思いました。また、小さな変更を加えるたびにコピーして貼り付けることなく、index.phpを使用する方法があるかどうかにも興味がありました。どんな助けでもいただければ幸いです。ありがとう。
3 に答える
テンプレート作成を計画している場合は、Symfony、Zend Framework、Smartyなどの既存のプラットフォームを使用することをお勧めします。Smartyはおそらく最も簡単に使用でき、(ほとんど)純粋にテンプレートを作成するためのものです。SymfonyとZendFrameworkは、たくさんのベルとホイッスルを備えた大きなパッケージです。
純粋なテンプレートを作成する場合は、Smartyを参照します。現在、ほぼすべてのPHPプロジェクトにZend Frameworkを使用していますが、学習曲線はかなり急です。最初の数週間はイライラするでしょう。
URLに関する限り、.htaccess
おそらく(少なくとも私の本では)推奨される方法です。http://host/controller/action
Zend FrameworkとSymfonyはどちらも、コントローラーがプロファイルまたはフォーラムになる場所のように見える、一種のデフォルトのURL書き込みスタイルを持っています。必ずしも表示する必要はありません。編集は実行中のアクションである、またはでhost/profile/index
ある可能性があります。host/profile
host/profile/edit
index.phpファイルをコピーすることは、実際には私が行う方法ではありません。面倒なようで、他にもいくつかのオプションがあります。URLをクリーンで検索エンジンに適したものにしたい場合は、.htaccessを使用したURLの書き換えを実際に確認する必要があります。
「htaccessファイルへのアクセス」を備えたサーバーがあるかどうかわからないと言っていますが、ファイルをアップロードできる場合は、いつでも.htaccessファイルをアップロードできます。問題は、Webサーバーが常にそれらを使用するとは限らないか、mod_rewriteが有効になっていない可能性があります。この場合、の形式でURLを取得できますhttp://www.example.com/index.php?u=/Profile/foo
(これは、URLの書き換えを処理するための私の推奨される方法でもあります)。
index.phpで、mod_rewriteによって渡された要求されたurlパラメーターを読み取り、必要なフォルダー内のファイルをすべて含めてください。実際には、「物理的な」フォルダ構造は必要ありません。クラスなどを使用して実装することをお勧めします。(私はそうするだろうと確信しています)。
優れたPHPフレームワーク、たとえばCodeIgniterをご覧になることを強くお勧めします。すべてを最初からコーディングすることにした場合でも、URL処理、データベース、MVCパターン、テンプレートエンジン、データベース抽象化レイヤー、およびPHPコーディング全般のベストプラクティスについて多くを学ぶことができます。
あなたの答えはhtaccessファイルであり、「フォルダ構造」を$_GET値に変換します
例えば、
website.com/Profile/にいる場合は、それをwebsite.com/index.php?folder=Profileに変換するhtaccess行を作成できます。
htaccess:
RewriteEngine on
RewriteRule ^/(.*)/$ index.php?folder=$1 [NC,L,QSA]
RewriteRule ^/(.*).html$ index.php?folder=$1 [NC,L,QSA]