1

ファイルを使用して.htaccessすべての URI アドレスを書き換えindex.phpて、URL に基づいて含めるファイルをコードが決定する場所にユーザーを連れて行きます。

ただし、URL がヘッダーのサブフォルダーにある場合、include 関数はファイルを取得していません。

例えば。

index.phpにあるファイルが含まれていますexamplefolder/content/page.php。そのファイルには、コンテンツ ページのヘッダーが含まれていますが、機能しinclude('../header.php');ていません。URLはexample.com/news/latest.

どうすればこれを機能させることができますか?

4

2 に答える 2

1

関数を使用chdir()して Web サーバーの現在の作業ディレクトリを変更し、相対パスを正しく機能させることができます。

現在の作業ディレクトリが何であるかを確認するには、echo getcwd(); 一度それを行うと、相対パスが必要ないことに気付くかもしれません。現在の作業ディレクトリが何であれ、それに基づいてインクルードを構造化するだけです ( index.php の場合、すべてのページは同じベース パス、つまり Web ルートから開始されます)。

于 2012-07-13T19:30:37.253 に答える
1

すべての URL を に書き換えると/index.php、すべてのリクエストは/ディレクトリ (つまり、ドキュメント ルート) から機能します。

したがってexamplefolder/content/page.php、ファイルをインクルードしていて、そこからファイルをインクルードしたい場合、ファイルをインクルードexamplefolder/header.phpしても現在の実行スレッドの作業ディレクトリは変更されないため、それはまさにあなたが書くものです。

例えば

include('examplefolder/header.php');
于 2012-07-13T19:34:06.413 に答える