• ベストアンサー

.htaccess 特定のファイルだけ許可

以下の質問と全く同じなのですが、 http://oshiete1.goo.ne.jp/qa2861527.html 例えば、 <Files ~ "^\.(jpg|JPG)$"> allow from all </Files> としても、他のファイルを表示(もしくはアクセス)することが出来てしまいます。 jpgは表示OKで、その他のファイルはNGとしたいのですが、NGのファイルも全て別途NG指定する必要があるのでしょうか?

  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • wait0000
  • ベストアンサー率60% (3/5)
回答No.1

こんな感じでどうでしょう <Files ~ "(?<!(jpg|JPG))\..*$"> deny from all </Files> (?<!正規表現) の部分は「戻り読み」と言って、正規表現の最後の部分がこれにマッチしなければ、と言う意味になります つまりここでは、「\..*$」(拡張子の最後の部分)が、「(?<!(jpg|JPG))」(jpgかJPG)では無い と言う意味になります 多分 間違っている可能性があるのでググってみてください・・・ (ちなみに、このままだと「.sjpg」とかも無視してしまうかもしれません)

warawara91
質問者

お礼

こんばんはwait0000さん。 早速やってみましたが、jpg も表示出来なくなってしまいました。 私も、もう少し探してみます。 何か可能性がありそうでしたら、教えて下さい。 ありがとうございました。

warawara91
質問者

補足

「\..*$」→「\.*$」にすると、行けそうですね! 今テストしたところ、以下のようになりました。 jpg ○ gif × php × html × doc × lzh × 何故かrobots.txtは○(まあこれは愛嬌として) phpやhtmlを制限できましたので、とても助かりました。 ありがとうございました。

関連するQ&A

  • .htaccess/特定のファイルだけ許可したい

    ロボットや海外のアクセスを制限したサイトを運営しています。 特定のファイルだけ許可を出したいのですが 全て同じフォルダ内にあるファイルの場合 どのように書いたら良いのでしょうか? とりあえず下記のように書いてみて、動作しているようですが 短く略す事が出来たり、他に正しい方法があったら教えて下さい。 よろしくお願いいたします。 <Files robots.txt> allow from all </Files> <Files bana.jpg> allow from all </Files> <Files 403.php> allow from all </Files> <Files 404.php> allow from all </Files> <Files 500.php> allow from all </Files>

    • ベストアンサー
    • HTML
  • .htaccessでアクセス許可したい

    IDやパスワードの書いてあるデータベース接続用のファイルを.htaccessで一般の人からの閲覧を拒否させたいのですが、肝心の呼び出し元スクリプトからのアクセスも拒否してしまいます。 レンタルサーバー環境の場合、.htaccessにはどのように記述すればよいのでしょうか? 現在の所、 ------------------.htaccess記述--------------------------------- <Files ~ "mysql.ini"> Order deny,allow Deny from all allow from ftp00.heteml.jp </Files> ---------------------------------------------------------------- (●mysql.ini~データベース接続用ファイル) (●ftp00.heteml.jp~レンタルサーバーのホスト名) と、書いています。 恐らく allow from ftp00.heteml.jp でのホスト指定の仕方に誤りがあると思うのですが・・ どのように訂正すれば呼び出し元スクリプトからのアクセスを許可するようになるでしょうか? ご存知の方いらっしゃいましたら宜しくお願いします!

  • Apacheで特定のファイルのみアクセス許可したい

    httpd.confの末尾に次の記述をしてapacheをリスタートしtop.htmlにアクセスしても 403エラーとなりアクセスできません。原因が分かる方よろしくお願いします。 <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/aaa"> Order deny,allow Deny from all SetEnvIf REFERER localhost referer_ok Allow from env=referer_ok </Directory> <Files "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/aaa/top.html"> Order allow,deny Allow from all </Files>

    • ベストアンサー
    • HTML
  • htaccessで直リンク防止をしたらindexが見れない…

    htaccessの記述で困っております。 初歩的なミスをしているのかもしれませんが、何かお気づきの点がありましたら教えてください。 htaccessで設定したいこと: ・外部からの全ファイルへの直リンクを避けたい ・でも一部のファイルは直リンクを許可したい(バナー画像やindexなど) 手探りで記述してみたところ、なんとか成功したのですが トップページへのアクセスがはじかれてしまいます。 http://●●●/index.html にはアクセスできますが http://●●●/ だと表示されない、という状態です。 index.htmlに直接アクセスされても実質的には変わらないのですが、 できればアドレスを短くすっきりさせたいんです。 SetEnvIf Referer "^http://●●●/" ref01 order deny,allow deny from all allow from env=ref01 <Files ~ "^(banner\.jpg|index\.html|http://●●●/)$"> allow from all </Files> 何か改善点はないでしょうか?

  • .htaccessについて(超初心者です)

    本当に初歩的な質問で申し訳ないのですが、 アクセス制限をかけたくて.htaccessについて調べています。 「制限をかけたいディレクトリに、.htaccessという名前のファイルを作成すればいい」ということが書いてあるのですが、その意味がわかっておりません・・・ たとえば、ホームページのアドレスがhttp://oshiete1.goo.ne.jp/index.html だとしたら http://oshiete1.goo.ne.jp/.htaccess とすれば良いのでしょうか? そして、ファイルのヘッド内のhtmlと一緒に order allow,deny allow from all deny from (はじきたいホスト) を書けばいいのですか? ホームページの全てのページではなく、特定のページを特定のホストから拒否したいのですが、その方法なども教えていただけますでしょうか。 本当に何もわかってなくてお恥ずかしいのですが、どうぞよろしくお願いいたします。

  • .htaccessで特定のフォルダ以外をアクセス禁止にするには?

    昨日からLinuxの勉強を始めた初心者です。 .htaccessの書き方についてどなたかご教授ください。 特定のファイル(index.phpとhtmlフォルダ)以外へのアクセスを禁止しようと下記のコードを書いてみました。 <Files ~ "*"> deny from all </Files> <Files ~ "^(index.php|html)$"> allow from all </Files> が、全てのファイルへのアクセスが禁止されてしまったのか、index.phpへアクセスできなくなってしまいました。 かといって、index.phpとhtmlフォルダ以外の全てのファイルを記述して、denyするのは記述が汚くなるので避けたいです。 どのように記述したらよいのでしょうか?

  • .htaccessでvodafoneからのアクセスを許可したいです。

    .htaccessにallow from vodafone.ne.jpという記述を含めたのですが、vodafoneからのアクセスが不可能です。 order deny,allow deny from all allow from docomo.ne.jp allow from ezweb.ne.jp allow from vodafone.ne.jp このような内容がかかれており、ドコモとauからのアクセスはできるようになりました。 どうしてvodafoneからのアクセスだけが禁止されてしまっているのでしょうか?もしわかる方がいらっしゃったら、ご回答よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • 「htaccess」と「jsファイル」について

    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 って、アパッチの設定か何かなのでしょうか? 具体的に何をしているのでしょうか?

  • .htaccessファイル

    ロリポップでサーバーをレンタルしています。 エラー表示画面を自作で作り 「ErrorDocument 404 http://xxx.xx.jp/error/404.html」 上記内容で.htaccessファイルを作り使用しています。 このような状況の中、 最近海外からの妙なアクセスが増えて来たので制限をかけたいのですが、 現在の↑.htaccessのファイルに下記のようにそのまま続けて書いて行ってよいのでしょうか? (↓.htaccessでjpドメイン以外を弾く) order deny,allow  deny from all    allow from .jp ・エラー表示は今まで通りそのまま使いたい ・アクセス制限をかけたい 以上、 書き方が分からず悩んでいます。 ご教示お願いいたします。。

  • .htaccess 特定IPのみアクセス許可

    .htaccess 特定IPのみアクセス許可↓ order deny,allow deny from all allow from 特定IP 上記設定がされているサイトに、特定IP以外の他人がアクセスする方法はありますでしょうか?(ハッカーなど) 現在、私のサイトで外部に洩れてはならない情報を取り扱っており、 .htaccessでアクセス制限は行っているのですが、 少々心細いので質問させていただきました。

専門家に質問してみよう