• 締切済み

異なるディレクトリにあるCSSファイルをロード

phpを使ったある画面について 【疑問点】 画面表示のタイミングで、linkタグで指定しているcssファイルではなく、別のディレクトリにあるCSSに動的に変更したいのですができますか?できるとしたらどのような実現方法があるでしょうか? 【前提条件など】 例として、cssファイルは/home/xxxx/css/以下に置きます。ここは、アクセス制限があり(画面表示時に)読み込むことはできません。 このようにブラウザにアクセスする不特定多数の方にはアクセスしてほしくない場所にCSSファイルを置くという前提条件は、サーバ上の理由で変更できません。つまりcssファイルを置くディレクトリの変更や移動はできません。 【現状】 表示させる際に、cssファイルの中身をすべてHTMLファイルに出力 しています。<link src=\"./home/xxxx/css/xxx.css\" > などとして読み込むことは上記サーバの制限がありできません。 【やりたいこと】 このようなcssファイルをlinkタグでファイルとして読み込みたい。 【やってみたこと】 仮に linkタグで public_html/css/stylesheets.css と記述します。 .htaccess rewriteで、このディレクトリのcssファイルにアクセスがあったら/home/xxx/css/stylesheet.cssに変更できないかと考えました。 この方法はできないように思いますがいかがでしょうか? public_html/xxxx.phpにアクセスがあったことは判定できると思うのですが public_html/css/stylesheets.cssにアクセスがあったことは.htaccessのほうでほんとうに判断できるのか?という点が解消されません。 自己案として、 .htaccessでrewriteを使う を検討しましたが、最終的にechoするHTTP echo する画面表示時に cssをロードすることができない。 なにかよい対策はあるでしょうか?お願いいたします。

みんなの回答

  • k17s
  • ベストアンサー率47% (9/19)
回答No.1

参考程度に。 アクセス制限がある = 不特定多数に見せてはいけないファイル だと思うのでcssがそういったディレクトリにあるのであれば、方法があったにしても表示するべきではないのではないか? と、思いましたがそれはさておき。 アクセス制限がかかっていてHTTP経由ではcssを読み込めないので、 phpでcss読み込み表示するというのはどうでしょう? mod_rewriteでcssへのアクセスをファイル名をパラメータにphpへ渡す。 /css/stylesheet.css → css.php?file=/css/stylesheet.css css.php でファイルを読み込み、表示する echo file_get_contents($_GET['file']);

関連するQ&A