アプリ版:「スタンプのみでお礼する」機能のリリースについて

csvとjsを読み込んで表示させているPHPスクリプトがあります。

■htaccess
<Files ~ ".(dat|log|csv|txt)$">
deny from all
</Files>

この状態では、問題ないです。
・csvファイルには、ブラウザから直接アクセスできない。
・csvファイル自体は、ファイルに読み込まれ、結果が画面に正常表示されている。


ところが、拡張子にjsファイルを追加したところ、
画面上で、そのjsスクリプト部分がまったく読み込まれないようになりました。
<Files ~ ".(dat|log|csv|txt|js)$">
deny from all
</Files>


■質問内容
拒否ファイルにcsvがあっても、csvファイルは読み込めたのに、
拒否ファイルにjsを指定すると、なぜ、読み込めなくなるのでしょうか?

jsはクライアントサイドの処理で、
csvファイルはサーバサイドのPHPを利用して読み込んでいるからなのでしょうか?

deny from all
って、アパッチの設定か何かなのでしょうか?
具体的に何をしているのでしょうか?

A 回答 (1件)

<Files ~ ".(dat|log|csv|txt|js)$">


deny from all
</Files>

は、.dat, .log, .csv, .txt, .js へのブラウザからのアクセスを拒否(deny)するという設定です。

.csv はブラウザではなくサーバ上のPHPプログラムが読んでいるのですよね?
サーバ上のプログラムがファイルシステムからファイルを読み込むのであれば、.htaccess の制限をうけません。(ブラウザじゃないから)

PHPが .js ファイルを読み込んで、生成した html の適切な場所に埋め込むのであれば .htaccess は関係ないですね。

もともとの
<Files ~ ".(dat|log|csv|txt)$">
deny from all
</Files>
の設定は、ブラウザからアクセス可能なディレクトリに .csv ファイルがあるので、ダウンロードされては困るため、アクセスを拒否するように設定したのでしょう。

しかし、 .js ファイルはPHPが読み込むものとブラウザが読み込むものと両方があるので、そこに*設定してはいけない*ということになります。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2010/11/28 18:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!