0

そこで、インクルードを使用してヘッダー、ページ、フッターを取得できるようにスクリプトを作成しました。ファイルが存在しない場合は 404 になります。今私の問題は、ページであるURLの最後を取得する方法です。例えば、

誰かが example.com/home/test にアクセスすると、たとえば test.php が自動的に含まれるようにしたいと考えています。

この話の教訓。ページ名を取得する方法。そして、それを使用してページの最後を「マスク」し、すべての URL を something.com/home/?p=home にする必要がないようにします。

これまでのところ、私のコードはここにあります。

<?php 
include($_SERVER['DOCUMENT_ROOT'].'/home/lib/php/_dc.php');
include($_SERVER['DOCUMENT_ROOT'].'/home/lib/php/_home_fns.php');

$script   = $_SERVER['SCRIPT_NAME']; //This returns /home/index.php for example =/
error_reporting(E_ALL);
include($_SERVER['DOCUMENT_ROOT'].'/home/default/header.php');
if($_GET["p"] == 'home' || !isset($_GET["p"])) {
    include($_SERVER['DOCUMENT_ROOT'].'/home/pages/home.php');
} else if(file_exists($_SERVER['DOCUMENT_ROOT'].'/home/pages/'.$_GET["p"].'.php'))      {
    include($_SERVER['DOCUMENT_ROOT'].'/home/pages/'.$_GET["p"].'.php');    
} else {
    include($_SERVER['DOCUMENT_ROOT'].'/home/default/404.php'); 
}
include($_SERVER['DOCUMENT_ROOT'].'/home/default/footer.php');
?>
4

2 に答える 2

1

ウェブサイトに空の「リダイレクト」PHP ファイルを散らかしたくない場合を除き、PHP 自体はここでの最良の選択ではありません。Apache サーバーのmod_rewriteモジュールを調べることをお勧めします。ここでは、開始するためのガイドをいくつか紹介します。お役に立てれば!

于 2012-09-13T22:21:23.757 に答える
0

最も簡単な方法は、index.php ファイルを /home/whatever フォルダー内に置くことです。次に、 $_SERVER['PHP_SELF'] のようなものを使用して、自動化する場合は名前を抽出します。または、既に自分でファイルを作成しているため、ファイルにハードコードします。

しかし、それは明らかに間違っているように見えます。より複雑で深刻なアプリを作成するつもりなら、おそらく mod-rewrite を検討する必要があります。

また、コントローラーへのパス全体が機能する CakePHP フレームワークをお勧めします。

于 2012-09-13T22:25:28.737 に答える