[PHP-users 34730] Re: ロードするCSSファイルを変える

山本巧 gyamamotogreen @ gmail.com
2009年 8月 29日 (土) 17:43:22 JST


山本です。

ご返信ありがとうございます。少し整理します。
------------------------------------------------------------------------------
◎一番最初の疑問点など かきなおし
------------------------------------------------------------------------------
【疑問点とやりたいこと】
画面表示のタイミングで、linkタグで指定しているcssファイルではなく、別のディレクトリにあるCSSをロードするようにしたいが、PHPでどのようにしたら実現できるか?

例)画面表示のとき
例えば <link src="/public_html/css/stylesheet.css"> と記載。
linkタグ内パスは、ブラウザからアクセスできるパスにしておきたい。
実際に、上記パスにはcssファイルは存在しない。
/home/xxxx/css/stylesheet.css
が画面に適用されるようにしたい。(このディレクトリはアクセスできないし隠蔽しておきたい。)
【前提条件など】
・cssファイルは/home/xxxx/css/以下に置く。ここは、アクセス制限があり(画面表示時に)読むことはできない。
・cssファイルを置く場所は変更できない。必ず、ブラウザにアクセスする不特定多数の方にはアクセスしてほしくないこの場所に置きたい。
【現状】
表示させる際に、cssファイルの中身をすべてHTMLファイルに出力
している。表示した画面で(HTMLの)ソースを見るという操作を
行うと、cssファイルの中身がそのままheadタグ内にでていることが
わかる。

------------------------------------------------------------------------------
◎一番最初にいただいた西村さんへの私のレス
------------------------------------------------------------------------------
>> まだ試していないのですが
>>
>> > <link src=\"/change_style.php\" >
>> >
>> > などとしておいて、
>> >
>> > change_style.phpには
>> > cssのコンテンツタイプと状況に合わせたCSSを
>> >
>> > echo file_get_contents($cssfilepath);
>>
>> この方法だとブラウザで表示させたあと、(HTML)ソースを見ると
>> CSSの内容がそのままでていることにならないでしょうか???
>
>何をおっしゃっているのか理解に苦しみますが…

上記、ブラウザで表示させたあと、(HTML)ソースを見ると・・・
と私は書いています。・・まだ試してはいませんが、
画面ロードが終わった時点でたとえばIEで右クリックし「ソースを
みる」としたとき表示されるソース内でcssファイルの中身がそっくり
でているのでは?という疑問を持ちました。

------------------------------------------------------------------------------
◎2009/08/29 16:41  西村さんからのレス
------------------------------------------------------------------------------
> なおかつ、CSSの設置ディレクトリはWEB上から参照不可と認識しましたので
> mod_rewriteをつかう方法ではApacheの設定なので、
> 本MLの趣旨には合わないとおもい、PHPを使い簡単に実装する方法として、
> CSSファイルを参照する代わりに、PHPスクリプトを参照し、そのPHPファイル中で
> CSSファイルを読み出し、出力する。という方法を提示したつもりです。

一番最初の投稿で、mod_rewriteではなく.htaccess
rewriteと記載しています。ただ、西村さんがここで言いたかったのはmod_writeでも.htaccessでもどちらであっても関係なく、apacheの問題であり
MLの主旨に反するかもしれないがPHPならこういう回避方法があるということでしょう。。と予測しています。


PHP-users メーリングリストの案内