• 締切済み

.htaccessについておしえてください。

外部からjsファイルを直リンクなどで、見られないようにできないかと考えています。 .htaccessで特定のサイトからのみ参照を許可するという記事を見ました。 例えばヘテムルのサーバにあるhttp://abc.heteml.jp/def/index.htmlからだけhttp://abc.heteml.jp/def/js/test.jsに参照を許可するのに、.htaccess に以下のように書きました。 SetEnvIf Referer "^http://abc\.heteml\.jp" ok_url <Files ~ "\.(js)$"> order deny,allow deny from all allow from env=ok_url </Files> 直リンクしようとすると500 error Internal Server Errorとなります。しかし、index.htmlにjs/test.jsが効かなくなりました。 .htaccess については全然分かっていません。いろいろなサイトを見ながらやっているのですが、うまくいきません。詳しく教えていただきたいと思い、投稿しました。 よろしくお願いします。

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

基本的には不可能です。  ウェブの根幹を成すHTTPプロトコルは、ファイルを要求する。それを受け取ったら、改めてそのファイルの描画動作に必要なファイルをHTTPプロトコルを使用して要求する・・の繰り返しです。  Firefoxをお使いでしょうが、アドオンのLive HTTP Headersで確認するとよくわかります。javascriptも画像もスタイルシートも、必要なだけ何度も要求しています。  その要求は、最初からそのファイルを直接要求するのと変わりません。  ☆要求ヘッダーのReferer:が追加されるだけです。 ★もしアクセス制限を行なえば、当然ブラウザでの閲覧に支障が生じます。  対策として、HTTP\REFERER、Refererを用いた制限だと、直接URLを記述しての利用は出来なくなりますが ・セキュリティソフトの設定で、リンク元情報Refererを禁止しているユーザーには利用できなくなります。 ・また、Firefoxでしたら、FireBugやJsViewでブラウザ経由でダウンロードされた物は見れます。  そもそも、そのファイルが使われているという事は、その時点でユーザーにダウンロードされているのですからね。  他人のスクリプトに興味のある人は、かならずそれを見れる方法を知っていますから、意味ありません。  よって、結論から言うと >外部からjsファイルを直リンクなどで、見られないようにできないかと考えています。  は不可能です。  というか、それで支障が出てくる人が現れることも含めて、すべきではありません。ウェブを考案したバーナーズリーが、 【引用】____________ここから  私が構想していたのは、自分の知識や考えを共有させることが、他人の知識を 学ぶのと同じくらいに容易であるようなシステムであった。... すべての文書を ある意味で「等価」にすることもまた不可欠である。システムはユーザーを制約しては ならない。どの文書についても、それがたまたまどこに保存されていようと、 同じようにたやすくリンクできるようになっていなければならない。(pp.49-50)  Webの背景をなす基本的な原理は次のようなものである。どこかの誰かが、 ひとたび文書、データベース、画像、音声、動画あるいはある程度まで インタラクティブな画面を準備したなら、もちろん使用許諾の範囲内のことだが、 いかなる国のどのようなコンピュータを使っている誰もが、この画面に対して アクセス可能でなければならない。そして、ほかの人たちが見つけることができる ように、リファレンスすなわちリンクをつくれるようにしなければいけない。(pp.53-54)  Webは技術的な創造物というよりは社会的な創造物である。私はWebを技術的な おもちゃではなく、人々の共同作業の手助けとなるような社会的効果を生むものとして 設計した。Webの最終目標は、世界中に散らばっている私たちが織りなしている 網の目のような存在を支援し、改善することである。(p.156)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[リンクについて「リンクは自由!」( http://www.sal.tohoku.ac.jp/~gothit/webpolicy.html )]より  あなたが苦労して書かれたスクリプトだって、その元となる知識は公開された資料が元になっていると思います。それどころか、HTTPやHTMLだって、誰かが考案して皆が自由に使ってここまで発展してきたのですよ。  自分は、それを自由に手に入れたのに、私の知識は見られるのは嫌だというのは、なんとなくおかしい気がします。  私は、ここでスタイルシートやHTMLのソースをたくさん紹介しています。他所には絶対ないような内容のものも公開しています。  なぜなら、私が身につけた恩を返すのは当たり前だと思っているからです。それによって、このウェブの世界が発展すればよい。  そんな狭い了見ではなく。  ウェブって、そんなのです。 『Webは技術的な創造物というよりは社会的な創造物である。私はWebを技術的な おもちゃではなく、人々の共同作業の手助けとなるような社会的効果を生むものとして 設計した。Webの最終目標は、世界中に散らばっている私たちが織りなしている 網の目のような存在を支援し、改善することである。』  Refererによって制限はかけられますが、支障の方が大きいのですべきではない。

dkong
質問者

お礼

ありがとうございます。勉強になりました。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

特定ファイル・ディレクトリ以下のファイルのみを規制することができます。 http://www.be-webdesigner.com/technotes/server/htaccess/access_deny.htm

dkong
質問者

お礼

ありがとうございました。参考になりました。

関連するQ&A