2012-04-17 12 views
0

Webサイトのほぼすべてのページに共通のheader.phpが含まれています。私はheader.phpファイル内の異なるリソースへの相対的なリンクを持っています。ルートフォルダの下にある別のサブフォルダにある他のページに含めると、リンクのいくつかが壊れてしまいます。私はheader.php絶対のすべてのリンクを作ることができます。もう1つの問題がポップアップします。アプリケーションを別のドメインに移動してwwwrootの下に置くと、絶対リンクは機能しません。私はこのアプリケーションのルートであるURLの部分を抽出するPHPの方法を見つけることができませんでした。私はアプリケーションルートの変数を定義し、header.php内のすべてのリンクにこの変数をプレフィックスとして付加しました。この方法では、このアプリケーションをある場所から別の場所に移動するときに変数を変更するだけです。一般的なヘッダーファイルのリンクが壊れないようにする方法

このような状況を処理する他のより良い方法があるかどうかは疑問です。

フィードバックをいただければ幸いです。

編集:フィードバックがさらに届きます。

+1

これをPHPで処理する最も一般的な方法は、mod_rewriteとフレンドを使用してすべてのリクエストをベースコントローラ経由で送信することです。 Javaでは、リクエスト・ハンドラ・アプリケーションと直接通信する組み込みサーバまたはサーバを使用して作業することが多いため、PHPはJavaとは多少異なります。 CGIを中心に設計されているPHPは、一般にこのようには動作しません。通常、パス解析を含むリクエストの部分はWebサーバーによって行われ、PHPが起動するまでに完了しています。サーバーは正しいスクリプトを見つけるためにそれを使用しました。 – DaveRandom

答えて

0

共通のheader.phpファイルを書くと、中央変数のように、<base> HTML要素を使用できますが、これはHTMLに限定されています。

絶対URLをリクエストURIに解決できるマッピング関数を作成することができます。また、相対URISを出現するコンテキストに解決できるため、リクエストURIに対して絶対的にマッピングできるようにすることができます再び。

次に、独自のURIを処理する出力フィルタを実装して、特別な処理のために特別なプレフィックスを付けることができます。

関連する問題