2012-04-04 10 views
1

サブディレクトリ(site1.com)にindex.htmlファイルを含むPHPスクリプト(index.php)があります。このindex.htmlファイルは、同じディレクトリ(site1.com)にある画像を表示します。同じディレクトリにあるファイルにアクセスするサブディレクトリにインクルードするファイル

現在、index.phpファイルにはindex.htmlファイルが含まれています。 index.htmlのHTMLが表示されますが、画像は表示されません。 index.htmlファイルは、表示するイメージのROOTディレクトリを探しています。これが問題です。私はどうにかして、単一の 'index.html'ファイルだけでなく、site1.comディレクトリのすべてのコンテンツ(??)を含める必要があります。

私は作業ディレクトリを変更しようとしましたが、成功しませんでした。たぶん私はちょうどそれを正しく使用していないでしょう...

私はむしろ説明したくない理由のために、私はPHPまたはApacheの設定を編集したくありません。また、index.htmlのコードを修正したくないです。基本的に言えば、PHPで100%実装できるソリューションを見つける必要があります。実際には、サブディレクトリ(site1.com)のコンテンツが表示されているときに、ユーザーがルートディレクトリ(mysite.com)にいるかのようにURLを表示する必要があります。これはある意味で透過的なプロキシのようなものです。

[FILE] index.php 
[DIR] site1.com 
    [FILE] index.html 
    [FILE] img1.png 
    [FILE] img2.png 
[DIR] site2.com 
    [FILE] index.html 
    [FILE] img1.png 
    [FILE] img2.png 

私は多くの検索を行いましたが、実際の解決策は見つかりませんでした。

答えて

1

ファイルを()/ require()に含めると、そのファイルの内容がそのまま文字列として切り取られ/貼り付けられたようになります。 index.htmlがsite1.comディレクトリの画像を使用する場合は、index.phpの場所に基づいてパスを使用してその画像を参照する必要があります。

リモートユーザーがあなたのサイト上のサブディレクトリからファイルを含めましたことを伝えることができません - あなたのindex.htmlが

<img src="img1.png" /> 
のようなものを持っているので、もし彼らはただ、一部のHTMLは、サーバーから戻って来るのを見るでしょう それで

、それHTMLは、ブラウザが

http://example.com/img1.png 

ない

http://example.com/site1.com/img1.png 
探ししようとしている、index.phpのスクリプトから表示されています

適切なパスを出力するのはあなた次第です。

+0

しかし、作業ディレクトリをフォルダに移動しないで、index.phpファイルを含めて、私が望むことをしますか? –

+0

いいえ。作業ディレクトリは純粋にサーバー側の概念であり、クライアントブラウザがhtmlをどのように解釈するかには全く関係ありません。あなたのコードが ''を出力するならば、サーバー上で実行したディレクトリ操作にかかわらず、ブラウザがロードしようとしているものです。 –

+0

cURL(ルートディレクトリにある 'index.php'ファイルから)を使用してサーバーに接続し、index.htmlファイルを 'site1.com'サブディレクトリからロードできますか?そして、ロードされたコンテンツをクライアントに送り返し、コンテンツがルートディレクトリから来たかのように見せます。 –

関連する問題