• ベストアンサー

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

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

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

  • ベストアンサー
  • 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

専門家に質問してみよう